diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/downloadBL.php b/presentation/lookAndFeel/knowledgeTree/documentmanagement/downloadBL.php new file mode 100644 index 0000000..9e39088 --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/documentmanagement/downloadBL.php @@ -0,0 +1,74 @@ +, Jam Warehouse (Pty) Ltd, South Africa + * @package presentation.lookAndFeel.knowledgeTree.documentmanagement + */ + +require_once("../../../../config/dmsDefaults.php"); + +require_once("$default->fileSystemRoot/lib/security/permission.inc"); +require_once("$default->fileSystemRoot/lib/documentmanagement/PhysicalDocumentManager.inc"); +require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentTransaction.inc"); +require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); + +if (checkSession()) { + if (isset($fDocumentID)) { + $oDocument = Document::get($fDocumentID); + if (Permission::userHasDocumentReadPermission($fDocumentID)) { + if (isset($fForInlineView)) { + $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Inline view", VIEW); + $oDocumentTransaction->create(); + PhysicalDocumentManager::inlineViewPhysicalDocument($fDocumentID); + } else { + //if the user has document read permission, perform the download + if (isset($fVersion)) { + // we're downloading an old version of the document + $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document version $fVersion downloaded", DOWNLOAD); + $oDocumentTransaction->create(); + + // if the document is currently checked out, and we're the version we're downloading + // is the same as the current version, then download the current version of the document + if ($oDocument->getIsCheckedOut() && ($fVersion == $oDocument->getVersion())) { + PhysicalDocumentManager::downloadPhysicalDocument($fDocumentID); + } else { + PhysicalDocumentManager::downloadVersionedPhysicalDocument($fDocumentID, $fVersion); + } + } else { + // download the current version + $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document downloaded", DOWNLOAD); + $oDocumentTransaction->create(); + PhysicalDocumentManager::downloadPhysicalDocument($fDocumentID); + } + } + } else { + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + $oPatternCustom = new PatternCustom(); + if ($oDocument) { + $oPatternCustom->setHtml("graphicsUrl/widgets/back.gif\" border=\"0\" />\n"); + } else { + $oPatternCustom->setHtml("graphicsUrl/widgets/back.gif\" border=\"0\" />\n"); + } + $main->setErrorMessage("Either you do not have permission to view this document, or the document you have chosen no longer exists on the file system."); + $main->setCentralPayload($oPatternCustom); + $main->render(); + } + } else { + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + $oPatternCustom = new PatternCustom(); + $oPatternCustom->setHtml("graphicsUrl/widgets/back.gif\" border=\"0\" />\n"); + $main->setErrorMessage("You have not chosen a document to view"); + $main->setCentralPayload($oPatternCustom); + $main->render(); + } +} +?> \ No newline at end of file