Commit bd6717624263777f0485652a92b575a024280680

Authored by Neil Blakey-Milner
1 parent b0df6b4d

Flatten code to make it more readable, and use the abstract storage

system to handle document downloading in some cases (to be completed).


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3597 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/documentmanagement/downloadBL.php
@@ -38,56 +38,66 @@ require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentTransactio @@ -38,56 +38,66 @@ require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentTransactio
38 require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc"); 38 require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc");
39 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); 39 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
40 40
  41 +require_once(KT_LIB_DIR . '/storage/storagemanager.inc.php');
  42 +$oStorage =& KTStorageManagerUtil::getSingleton();
  43 +
41 // start the session for a download- workaround for the IE SSL bug 44 // start the session for a download- workaround for the IE SSL bug
42 -if (checkSession(true)) {  
43 - if (isset($fDocumentID)) {  
44 - $oDocument = Document::get($fDocumentID);  
45 - if (Permission::userHasDocumentReadPermission($oDocument)) {  
46 - if (isset($fForInlineView)) {  
47 - $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Inline view", VIEW);  
48 - $oDocumentTransaction->create();  
49 - PhysicalDocumentManager::inlineViewPhysicalDocument($fDocumentID);  
50 - } else {  
51 - //if the user has document read permission, perform the download  
52 - if (isset($fVersion)) {  
53 - // we're downloading an old version of the document  
54 - $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document version $fVersion downloaded", DOWNLOAD);  
55 - $oDocumentTransaction->create();  
56 -  
57 - // if the document is currently checked out, and we're the version we're downloading  
58 - // is the same as the current version, then download the current version of the document  
59 - if ($oDocument->getIsCheckedOut() && ($fVersion == $oDocument->getVersion())) {  
60 - PhysicalDocumentManager::downloadPhysicalDocument($fDocumentID);  
61 - } else {  
62 - PhysicalDocumentManager::downloadVersionedPhysicalDocument($fDocumentID, $fVersion);  
63 - }  
64 - } else {  
65 - // download the current version  
66 - $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document downloaded", DOWNLOAD);  
67 - $oDocumentTransaction->create();  
68 - PhysicalDocumentManager::downloadPhysicalDocument($fDocumentID);  
69 - }  
70 - exit;  
71 - }  
72 - } else {  
73 - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");  
74 - $oPatternCustom = new PatternCustom();  
75 - if ($oDocument) {  
76 - $oPatternCustom->setHtml("<a href=\"" . generateControllerLink("browse", "fFolderID=" . $oDocument->getFolderID()) . "\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");  
77 - } else {  
78 - $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");  
79 - }  
80 - $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."));  
81 - $main->setCentralPayload($oPatternCustom);  
82 - $main->render();  
83 - } 45 +if (!checkSession(true)) {
  46 + exit(0);
  47 +}
  48 +
  49 +if (!isset($fDocumentID)) {
  50 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  51 + $oPatternCustom = new PatternCustom();
  52 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  53 + $main->setErrorMessage(_("You have not chosen a document to view"));
  54 + $main->setCentralPayload($oPatternCustom);
  55 + $main->render();
  56 + exit(0);
  57 +}
  58 +
  59 +$oDocument = Document::get($fDocumentID);
  60 +if (!Permission::userHasDocumentReadPermission($oDocument)) {
  61 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  62 + $oPatternCustom = new PatternCustom();
  63 + if ($oDocument) {
  64 + $oPatternCustom->setHtml("<a href=\"" . generateControllerLink("browse", "fFolderID=" . $oDocument->getFolderID()) . "\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
84 } else { 65 } else {
85 - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");  
86 - $oPatternCustom = new PatternCustom();  
87 $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n"); 66 $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
88 - $main->setErrorMessage(_("You have not chosen a document to view"));  
89 - $main->setCentralPayload($oPatternCustom);  
90 - $main->render();  
91 } 67 }
92 -} 68 + $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."));
  69 + $main->setCentralPayload($oPatternCustom);
  70 + $main->render();
  71 + exit(0);
  72 +}
  73 +
  74 +if (isset($fForInlineView)) {
  75 + $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Inline view", VIEW);
  76 + $oDocumentTransaction->create();
  77 + PhysicalDocumentManager::inlineViewPhysicalDocument($fDocumentID);
  78 + exit(0);
  79 +}
  80 +
  81 +//if the user has document read permission, perform the download
  82 +if (isset($fVersion)) {
  83 + // we're downloading an old version of the document
  84 + $oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document version $fVersion downloaded", DOWNLOAD);
  85 + $oDocumentTransaction->create();
  86 +
  87 + // if the document is currently checked out, and we're the version we're downloading
  88 + // is the same as the current version, then download the current version of the document
  89 + if ($oDocument->getIsCheckedOut() && ($fVersion == $oDocument->getVersion())) {
  90 + $oStorage->download($oDocument);
  91 + } else {
  92 + PhysicalDocumentManager::downloadVersionedPhysicalDocument($fDocumentID, $fVersion);
  93 + }
  94 + exit(0);
  95 +}
  96 +
  97 +// download the current version
  98 +$oDocumentTransaction = & new DocumentTransaction($fDocumentID, "Document downloaded", DOWNLOAD);
  99 +$oDocumentTransaction->create();
  100 +$oStorage->download($oDocument);
  101 +exit(0);
  102 +
93 ?> 103 ?>