, Jam Warehouse (Pty) Ltd, South Africa * @package documentmanagement */ require_once("../../../../config/dmsDefaults.php"); KTUtil::extractGPC('fDocumentID', 'fForInlineView', 'fVersion'); 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"); require_once(KT_LIB_DIR . '/storage/storagemanager.inc.php'); $oStorage =& KTStorageManagerUtil::getSingleton(); // start the session for a download- workaround for the IE SSL bug if (!checkSession(true)) { exit(0); } if (!isset($fDocumentID)) { require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = new PatternCustom(); $oPatternCustom->setHtml("\n"); $main->setErrorMessage(_("You have not chosen a document to view")); $main->setCentralPayload($oPatternCustom); $main->render(); exit(0); } $oDocument = Document::get($fDocumentID); if (!Permission::userHasDocumentReadPermission($oDocument)) { require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = new PatternCustom(); if ($oDocument) { $oPatternCustom->setHtml("\n"); } else { $oPatternCustom->setHtml("\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(); exit(0); } if (isset($fForInlineView)) { $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Inline view", VIEW); $oDocumentTransaction->create(); PhysicalDocumentManager::inlineViewPhysicalDocument($fDocumentID); exit(0); } //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())) { $oStorage->download($oDocument); } else { PhysicalDocumentManager::downloadVersionedPhysicalDocument($fDocumentID, $fVersion); } exit(0); } // download the current version $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document downloaded", DOWNLOAD); $oDocumentTransaction->create(); $oStorage->download($oDocument); exit(0); ?>