From 7de8db7ec0b560de2d03a1e53e4e6524f6943e81 Mon Sep 17 00:00:00 2001 From: Neil Blakey-Milner Date: Wed, 21 Dec 2005 14:48:28 +0000 Subject: [PATCH] Move view.php from presentation/lookAndFeel/knowledgeTree/documentmanagement/ to / --- presentation/lookAndFeel/knowledgeTree/documentmanagement/view.php | 378 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ view.php | 377 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 377 insertions(+), 378 deletions(-) delete mode 100644 presentation/lookAndFeel/knowledgeTree/documentmanagement/view.php create mode 100755 view.php diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/view.php b/presentation/lookAndFeel/knowledgeTree/documentmanagement/view.php deleted file mode 100644 index 8168211..0000000 --- a/presentation/lookAndFeel/knowledgeTree/documentmanagement/view.php +++ /dev/null @@ -1,378 +0,0 @@ -aBreadcrumbs = array( - array('action' => 'browse', 'name' => _('Browse')), - ); - - parent::KTStandardDispatcher(); - } - - // FIXME identify the current location somehow. - function addPortlets($currentaction = null) { - $actions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser); - $oPortlet = new KTActionPortlet(_("Document Actions")); - $oPortlet->setActions($actions, $currentaction); - $this->oPage->addPortlet($oPortlet); - } - - function do_main() { - // fix legacy, broken items. - if (KTUtil::arrayGet($_REQUEST, "fDocumentID", true) !== true) { - $_REQUEST["fDocumentId"] = KTUtil::arrayGet($_REQUEST, "fDocumentID"); - unset($_REQUEST["fDocumentID"]); - } - - $document_data = array(); - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); - $oKTConfig = KTConfig::getSingleton(); - if ($document_id === null) { - $this->oPage->addError('No document was requested. Please browse for one.'); - return $this->do_error(); - } - $document_data["document_id"] = $document_id; - - // try get the document. - $oDocument =& Document::get($document_id); - if (PEAR::isError($oDocument)) { - $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); - return $this->do_error(); - } - if (!Permission::userHasDocumentReadPermission($oDocument)) { - $this->oPage->addError(_('You are not allowed to view this document')); - return $this->do_error(); - } - - $aOptions = array( - "documentaction" => "viewDocument", - "folderaction" => "browse", - ); - - $this->oDocument =& $oDocument; - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); - $this->oPage->setBreadcrumbDetails(_("document details")); - $this->addPortlets("Document Details"); - - $document_data["document"] = $oDocument; - $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID()); - $is_valid_doctype = true; - - if (PEAR::isError($document_data["document_type"])) { - $this->oPage->addError('The document you requested has an invalid document type. Unfortunately, this means that we cannot effectively display it.'); - $is_valid_doctype = false; - } - - // we want to grab all the md for this doc, since its faster that way. - $mdlist =& DocumentFieldLink::getList(array('document_id = ?', array($document_id))); - - $field_values = array(); - foreach ($mdlist as $oFieldLink) { - $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); - } - - //var_dump($field_values); - - $document_data["field_values"] = $field_values; - - - // FIXME generate portlets - // FIXME generate breadcrumb - - // Fieldset generation. - // - // we need to create a set of FieldsetDisplay objects - // that adapt the Fieldsets associated with this lot - // to the view (i.e. ZX3). Unfortunately, we don't have - // any of the plumbing to do it, so we handle this here. - $fieldsets = array(); - - // we always have a generic. - array_push($fieldsets, new GenericFieldsetDisplay()); - - $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton(); - - foreach (KTMetadataUtil::fieldsetsForDocument($oDocument) as $oFieldset) { - $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace()); - array_push($fieldsets, new $displayClass($oFieldset)); - } - - $oTemplating = new KTTemplating; - $oTemplate = $oTemplating->loadTemplate("kt3/view_document"); - $aTemplateData = array( - "context" => $this, - "document_id" => $document_id, - "document" => $oDocument, - "document_data" => $document_data, - "fieldsets" => $fieldsets, - ); - //return '
' . print_r($aTemplateData, true) . '
'; - return $oTemplate->render($aTemplateData); - } - - function do_history() { - $document_data = array(); - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); - if ($document_id === null) { - $this->oPage->addError('No document was requested. Please browse for one.'); - return $this->do_error(); - } - $document_data["document_id"] = $document_id; - - // try get the document. - $oDocument =& Document::get($document_id); - if (PEAR::isError($oDocument)) { - $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); - return $this->do_error(); - } - // fixme check perms - - $this->oDocument =& $oDocument; - $aOptions = array("final" => false); - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); - $this->oPage->setBreadcrumbDetails(_("history")); - $this->addPortlets("History"); - - $aTransactions = array(); - // FIXME create a sane "view user information" page somewhere. - // FIXME do we really need to use a raw db-access here? probably... - $sQuery = "SELECT DTT.name AS transaction_name, U.name AS user_name, DT.version AS version, DT.comment AS comment, DT.datetime AS datetime " . - "FROM " . KTUtil::getTableName("document_transactions") . " AS DT INNER JOIN " . KTUtil::getTableName("users") . " AS U ON DT.user_id = U.id " . - "INNER JOIN " . KTUtil::getTableName("transaction_types") . " AS DTT ON DTT.namespace = DT.transaction_namespace " . - "WHERE DT.document_id = ? ORDER BY DT.datetime DESC"; - $aParams = array($document_id); - $res = DBUtil::getResultArray(array($sQuery, $aParams)); - if (PEAR::isError($res)) { - var_dump($res); // FIXME be graceful on failure. - exit(0); - } - - // FIXME roll up view transactions - $aTransactions = $res; - - - // render pass. - $this->oPage->title = _("Document History") . " : " . $oDocument->getName(); - $oTemplating = new KTTemplating; - $oTemplate = $oTemplating->loadTemplate("kt3/view_document_history"); - $aTemplateData = array( - "context" => $this, - "document_id" => $document_id, - "document" => $oDocument, - "transactions" => $aTransactions, - ); - return $oTemplate->render($aTemplateData); - } - - - function do_versionhistory() { - // this is the list of documents past. - $document_data = array(); - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); - if ($document_id === null) { - $this->oPage->addError('No document was requested. Please browse for one.'); - return $this->do_error(); - } - $document_data["document_id"] = $document_id; - - // try get the document. - $oDocument =& Document::get($document_id); - if (PEAR::isError($oDocument)) { - $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); - return $this->do_error(); - } - // fixme check perms - - $this->oDocument =& $oDocument; - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument)); - $this->oPage->setBreadcrumbDetails(_("history")); - $this->addPortlets("History"); - - $aVersions = Document::getByLiveDocument($oDocument); - //var_dump($aVersions); - - // render pass. - $this->oPage->title = _("Document History") . " : " . $oDocument->getName(); - $oTemplating = new KTTemplating; - $oTemplate = $oTemplating->loadTemplate("kt3/document/metadata_history"); - - $aActions = KTDocumentActionUtil::getDocumentActionsByNames(array('ktcore.actions.document.view')); - $oAction = $aActions[0]; - $oAction->setDocument($this->oDocument); - - $aTemplateData = array( - "context" => $this, - "document_id" => $document_id, - "document" => $oDocument, - "versions" => $aVersions, - 'downloadaction' => $oAction, - ); - return $oTemplate->render($aTemplateData); - } - - // FIXME refactor out the document-info creation into a single utility function. - // this gets in: - // fDocumentId (document to compare against) - // fComparisonVersion (the metadata_version of the appropriate document) - function do_viewComparison() { - $document_data = array(); - $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); - if ($document_id === null) { - $this->oPage->addError('No document was requested. Please browse for one.'); - return $this->do_error(); - } - $document_data["document_id"] = $document_id; - - // try get the document. - $oDocument =& Document::get($document_id); - if (PEAR::isError($oDocument)) { - $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); - return $this->do_error(); - } - if (!Permission::userHasDocumentReadPermission($oDocument)) { - // FIXME inconsistent. - $this->oPage->addError(_('You are not allowed to view this document')); - return $this->do_error(); - } - $this->oDocument =& $oDocument; - $aOptions = array("final" => false); - $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); - $this->oPage->setBreadcrumbDetails(_("compare versions")); - - $comparison_version = KTUtil::arrayGet($_REQUEST, 'fComparisonVersion'); - if ($comparison_version=== null) { - $this->oPage->addError('No comparison version was requested. Please select a version.'); - return $this->do_error(); - } - - $oComparison =& Document::get($comparison_version); - if (PEAR::isError($oComparison)) { - $this->errorRedirectToMain(_('Invalid document to compare against.')); - } - $comparison_data = array(); - $comparison_data['document_id'] = $oComparison->getId(); - - $document_data["document"] = $oDocument; - $comparison_data['document'] = $oComparison; - - $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID()); - $comparison_data["document_type"] =& DocumentType::get($oComparison->getDocumentTypeID()); - - // follow twice: once for normal, once for comparison. - $is_valid_doctype = true; - - if (PEAR::isError($document_data["document_type"])) { - $this->oPage->addError('The document you requested has an invalid document type. Unfortunately, this means that we cannot effectively display it.'); - $is_valid_doctype = false; - } - - // we want to grab all the md for this doc, since its faster that way. - $mdlist =& DocumentFieldLink::getList(array('document_id = ?', array($document_id))); - - $field_values = array(); - foreach ($mdlist as $oFieldLink) { - $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); - } - - $document_data["field_values"] = $field_values; - - $mdlist =& DocumentFieldLink::getList(array('document_id = ?', array($comparison_version))); - - $field_values = array(); - foreach ($mdlist as $oFieldLink) { - $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); - } - - $comparison_data["field_values"] = $field_values; - - - - // Fieldset generation. - // - // we need to create a set of FieldsetDisplay objects - // that adapt the Fieldsets associated with this lot - // to the view (i.e. ZX3). Unfortunately, we don't have - // any of the plumbing to do it, so we handle this here. - $fieldsets = array(); - - // we always have a generic. - array_push($fieldsets, new GenericFieldsetDisplay()); - - // FIXME can we key this on fieldset namespace? or can we have duplicates? - // now we get the other fieldsets, IF there is a valid doctype. - if ($is_valid_doctype) { - // these are the _actual_ fieldsets. - $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton(); - - // and the generics - $activesets = KTFieldset::getGenericFieldsets(); - foreach ($activesets as $oFieldset) { - $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace()); - array_push($fieldsets, new $displayClass($oFieldset)); - } - - $activesets = KTFieldset::getForDocumentType($oDocument->getDocumentTypeID()); - foreach ($activesets as $oFieldset) { - $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace()); - array_push($fieldsets, new $displayClass($oFieldset)); - } - } - - // FIXME handle ad-hoc fieldsets. - - $oTemplating = new KTTemplating; - $oTemplate = $oTemplating->loadTemplate("kt3/compare_document"); - $aTemplateData = array( - "context" => $this, - "document_id" => $document_id, - "document" => $oDocument, - "document_data" => $document_data, - "comparison_data" => $comparison_data, - "comparison_document" => $oComparison, - "fieldsets" => $fieldsets, - ); - //var_dump($aTemplateData["comparison_data"]); - return $oTemplate->render($aTemplateData); - } - - /* we have a lot of error handling. this one is the absolute final failure. */ - function do_error() { - return ''; // allow normal rendering of errors. - // FIXME show something useful / generic. - } - - function getUserForId($iUserId) { - $u = User::get($iUserId); - return $u->getName(); - } -} - -$oDispatcher = new ViewDocumentDispatcher; -$oDispatcher->dispatch(); - -?> diff --git a/view.php b/view.php new file mode 100755 index 0000000..bdd3edf --- /dev/null +++ b/view.php @@ -0,0 +1,377 @@ +aBreadcrumbs = array( + array('action' => 'browse', 'name' => _('Browse')), + ); + + parent::KTStandardDispatcher(); + } + + // FIXME identify the current location somehow. + function addPortlets($currentaction = null) { + $actions = KTDocumentActionUtil::getDocumentActionsForDocument($this->oDocument, $this->oUser); + $oPortlet = new KTActionPortlet(_("Document Actions")); + $oPortlet->setActions($actions, $currentaction); + $this->oPage->addPortlet($oPortlet); + } + + function do_main() { + // fix legacy, broken items. + if (KTUtil::arrayGet($_REQUEST, "fDocumentID", true) !== true) { + $_REQUEST["fDocumentId"] = KTUtil::arrayGet($_REQUEST, "fDocumentID"); + unset($_REQUEST["fDocumentID"]); + } + + $document_data = array(); + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); + if ($document_id === null) { + $this->oPage->addError('No document was requested. Please browse for one.'); + return $this->do_error(); + } + $document_data["document_id"] = $document_id; + + // try get the document. + $oDocument =& Document::get($document_id); + if (PEAR::isError($oDocument)) { + $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); + return $this->do_error(); + } + if (!Permission::userHasDocumentReadPermission($oDocument)) { + $this->oPage->addError(_('You are not allowed to view this document')); + return $this->do_error(); + } + + $aOptions = array( + "documentaction" => "viewDocument", + "folderaction" => "browse", + ); + + $this->oDocument =& $oDocument; + $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); + $this->oPage->setBreadcrumbDetails(_("document details")); + $this->addPortlets("Document Details"); + + $document_data["document"] = $oDocument; + $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID()); + $is_valid_doctype = true; + + if (PEAR::isError($document_data["document_type"])) { + $this->oPage->addError('The document you requested has an invalid document type. Unfortunately, this means that we cannot effectively display it.'); + $is_valid_doctype = false; + } + + // we want to grab all the md for this doc, since its faster that way. + $mdlist =& DocumentFieldLink::getList(array('document_id = ?', array($document_id))); + + $field_values = array(); + foreach ($mdlist as $oFieldLink) { + $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); + } + + //var_dump($field_values); + + $document_data["field_values"] = $field_values; + + + // FIXME generate portlets + // FIXME generate breadcrumb + + // Fieldset generation. + // + // we need to create a set of FieldsetDisplay objects + // that adapt the Fieldsets associated with this lot + // to the view (i.e. ZX3). Unfortunately, we don't have + // any of the plumbing to do it, so we handle this here. + $fieldsets = array(); + + // we always have a generic. + array_push($fieldsets, new GenericFieldsetDisplay()); + + $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton(); + + foreach (KTMetadataUtil::fieldsetsForDocument($oDocument) as $oFieldset) { + $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace()); + array_push($fieldsets, new $displayClass($oFieldset)); + } + + $oTemplating = new KTTemplating; + $oTemplate = $oTemplating->loadTemplate("kt3/view_document"); + $aTemplateData = array( + "context" => $this, + "document_id" => $document_id, + "document" => $oDocument, + "document_data" => $document_data, + "fieldsets" => $fieldsets, + ); + //return '
' . print_r($aTemplateData, true) . '
'; + return $oTemplate->render($aTemplateData); + } + + function do_history() { + $document_data = array(); + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); + if ($document_id === null) { + $this->oPage->addError('No document was requested. Please browse for one.'); + return $this->do_error(); + } + $document_data["document_id"] = $document_id; + + // try get the document. + $oDocument =& Document::get($document_id); + if (PEAR::isError($oDocument)) { + $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); + return $this->do_error(); + } + // fixme check perms + + $this->oDocument =& $oDocument; + $aOptions = array("final" => false); + $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); + $this->oPage->setBreadcrumbDetails(_("history")); + $this->addPortlets("History"); + + $aTransactions = array(); + // FIXME create a sane "view user information" page somewhere. + // FIXME do we really need to use a raw db-access here? probably... + $sQuery = "SELECT DTT.name AS transaction_name, U.name AS user_name, DT.version AS version, DT.comment AS comment, DT.datetime AS datetime " . + "FROM " . KTUtil::getTableName("document_transactions") . " AS DT INNER JOIN " . KTUtil::getTableName("users") . " AS U ON DT.user_id = U.id " . + "INNER JOIN " . KTUtil::getTableName("transaction_types") . " AS DTT ON DTT.namespace = DT.transaction_namespace " . + "WHERE DT.document_id = ? ORDER BY DT.datetime DESC"; + $aParams = array($document_id); + $res = DBUtil::getResultArray(array($sQuery, $aParams)); + if (PEAR::isError($res)) { + var_dump($res); // FIXME be graceful on failure. + exit(0); + } + + // FIXME roll up view transactions + $aTransactions = $res; + + + // render pass. + $this->oPage->title = _("Document History") . " : " . $oDocument->getName(); + $oTemplating = new KTTemplating; + $oTemplate = $oTemplating->loadTemplate("kt3/view_document_history"); + $aTemplateData = array( + "context" => $this, + "document_id" => $document_id, + "document" => $oDocument, + "transactions" => $aTransactions, + ); + return $oTemplate->render($aTemplateData); + } + + + function do_versionhistory() { + // this is the list of documents past. + $document_data = array(); + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); + if ($document_id === null) { + $this->oPage->addError('No document was requested. Please browse for one.'); + return $this->do_error(); + } + $document_data["document_id"] = $document_id; + + // try get the document. + $oDocument =& Document::get($document_id); + if (PEAR::isError($oDocument)) { + $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); + return $this->do_error(); + } + // fixme check perms + + $this->oDocument =& $oDocument; + $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument)); + $this->oPage->setBreadcrumbDetails(_("history")); + $this->addPortlets("History"); + + $aVersions = Document::getByLiveDocument($oDocument); + //var_dump($aVersions); + + // render pass. + $this->oPage->title = _("Document History") . " : " . $oDocument->getName(); + $oTemplating = new KTTemplating; + $oTemplate = $oTemplating->loadTemplate("kt3/document/metadata_history"); + + $aActions = KTDocumentActionUtil::getDocumentActionsByNames(array('ktcore.actions.document.view')); + $oAction = $aActions[0]; + $oAction->setDocument($this->oDocument); + + $aTemplateData = array( + "context" => $this, + "document_id" => $document_id, + "document" => $oDocument, + "versions" => $aVersions, + 'downloadaction' => $oAction, + ); + return $oTemplate->render($aTemplateData); + } + + // FIXME refactor out the document-info creation into a single utility function. + // this gets in: + // fDocumentId (document to compare against) + // fComparisonVersion (the metadata_version of the appropriate document) + function do_viewComparison() { + $document_data = array(); + $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); + if ($document_id === null) { + $this->oPage->addError('No document was requested. Please browse for one.'); + return $this->do_error(); + } + $document_data["document_id"] = $document_id; + + // try get the document. + $oDocument =& Document::get($document_id); + if (PEAR::isError($oDocument)) { + $this->oPage->addError('The document you attempted to retrieve is invalid. Please browse for one.'); + return $this->do_error(); + } + if (!Permission::userHasDocumentReadPermission($oDocument)) { + // FIXME inconsistent. + $this->oPage->addError(_('You are not allowed to view this document')); + return $this->do_error(); + } + $this->oDocument =& $oDocument; + $aOptions = array("final" => false); + $this->aBreadcrumbs = array_merge($this->aBreadcrumbs, KTBrowseUtil::breadcrumbsForDocument($oDocument, $aOptions)); + $this->oPage->setBreadcrumbDetails(_("compare versions")); + + $comparison_version = KTUtil::arrayGet($_REQUEST, 'fComparisonVersion'); + if ($comparison_version=== null) { + $this->oPage->addError('No comparison version was requested. Please select a version.'); + return $this->do_error(); + } + + $oComparison =& Document::get($comparison_version); + if (PEAR::isError($oComparison)) { + $this->errorRedirectToMain(_('Invalid document to compare against.')); + } + $comparison_data = array(); + $comparison_data['document_id'] = $oComparison->getId(); + + $document_data["document"] = $oDocument; + $comparison_data['document'] = $oComparison; + + $document_data["document_type"] =& DocumentType::get($oDocument->getDocumentTypeID()); + $comparison_data["document_type"] =& DocumentType::get($oComparison->getDocumentTypeID()); + + // follow twice: once for normal, once for comparison. + $is_valid_doctype = true; + + if (PEAR::isError($document_data["document_type"])) { + $this->oPage->addError('The document you requested has an invalid document type. Unfortunately, this means that we cannot effectively display it.'); + $is_valid_doctype = false; + } + + // we want to grab all the md for this doc, since its faster that way. + $mdlist =& DocumentFieldLink::getList(array('document_id = ?', array($document_id))); + + $field_values = array(); + foreach ($mdlist as $oFieldLink) { + $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); + } + + $document_data["field_values"] = $field_values; + + $mdlist =& DocumentFieldLink::getList(array('document_id = ?', array($comparison_version))); + + $field_values = array(); + foreach ($mdlist as $oFieldLink) { + $field_values[$oFieldLink->getDocumentFieldID()] = $oFieldLink->getValue(); + } + + $comparison_data["field_values"] = $field_values; + + + + // Fieldset generation. + // + // we need to create a set of FieldsetDisplay objects + // that adapt the Fieldsets associated with this lot + // to the view (i.e. ZX3). Unfortunately, we don't have + // any of the plumbing to do it, so we handle this here. + $fieldsets = array(); + + // we always have a generic. + array_push($fieldsets, new GenericFieldsetDisplay()); + + // FIXME can we key this on fieldset namespace? or can we have duplicates? + // now we get the other fieldsets, IF there is a valid doctype. + if ($is_valid_doctype) { + // these are the _actual_ fieldsets. + $fieldsetDisplayReg =& KTFieldsetDisplayRegistry::getSingleton(); + + // and the generics + $activesets = KTFieldset::getGenericFieldsets(); + foreach ($activesets as $oFieldset) { + $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace()); + array_push($fieldsets, new $displayClass($oFieldset)); + } + + $activesets = KTFieldset::getForDocumentType($oDocument->getDocumentTypeID()); + foreach ($activesets as $oFieldset) { + $displayClass = $fieldsetDisplayReg->getHandler($oFieldset->getNamespace()); + array_push($fieldsets, new $displayClass($oFieldset)); + } + } + + // FIXME handle ad-hoc fieldsets. + + $oTemplating = new KTTemplating; + $oTemplate = $oTemplating->loadTemplate("kt3/compare_document"); + $aTemplateData = array( + "context" => $this, + "document_id" => $document_id, + "document" => $oDocument, + "document_data" => $document_data, + "comparison_data" => $comparison_data, + "comparison_document" => $oComparison, + "fieldsets" => $fieldsets, + ); + //var_dump($aTemplateData["comparison_data"]); + return $oTemplate->render($aTemplateData); + } + + /* we have a lot of error handling. this one is the absolute final failure. */ + function do_error() { + return ''; // allow normal rendering of errors. + // FIXME show something useful / generic. + } + + function getUserForId($iUserId) { + $u = User::get($iUserId); + return $u->getName(); + } +} + +$oDispatcher = new ViewDocumentDispatcher; +$oDispatcher->dispatch(); + +?> -- libgit2 0.21.4