mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-11 17:44:56 +00:00
move more code into controller class
This commit is contained in:
parent
861776f9f0
commit
dc2edaca25
|
@ -22,12 +22,8 @@
|
|||
*/
|
||||
class SeedDMS_Controller_Download extends SeedDMS_Controller_Common {
|
||||
|
||||
public function run() {
|
||||
public function version() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$type = $this->params['type'];
|
||||
|
||||
switch($type) {
|
||||
case "version":
|
||||
$content = $this->params['content'];
|
||||
|
||||
if(!$this->callHook('version')) {
|
||||
|
@ -42,8 +38,10 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common {
|
|||
readfile($dms->contentDir . $content->getPath());
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "file":
|
||||
} /* }}} */
|
||||
|
||||
public function file() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$file = $this->params['file'];
|
||||
|
||||
if(!$this->callHook('file')) {
|
||||
|
@ -61,7 +59,148 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common {
|
|||
readfile($dms->contentDir . $file->getPath());
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function archive() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$filename = $this->params['file'];
|
||||
$basedir = $this->params['basedir'];
|
||||
|
||||
if(!$this->callHook('archive')) {
|
||||
if(file_exists($basedir . $filename)) {
|
||||
header('Content-Description: File Transfer');
|
||||
header("Content-Type: application/zip");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($basedir . $filename ));
|
||||
$efilename = rawurlencode($filename);
|
||||
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
|
||||
header("Cache-Control: public");
|
||||
|
||||
ob_clean();
|
||||
readfile($basedir .$filename );
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function log() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$filename = $this->params['file'];
|
||||
$basedir = $this->params['basedir'];
|
||||
|
||||
if(!$this->callHook('log')) {
|
||||
if(file_exists($basedir . $filename)) {
|
||||
header("Content-Type: text/plain; name=\"" . $filename . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($basedir . $filename ));
|
||||
$efilename = rawurlencode($filename);
|
||||
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
|
||||
header("Cache-Control: must-revalidate");
|
||||
|
||||
ob_clean();
|
||||
readfile($basedir.$filename);
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function sqldump() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$filename = $this->params['file'];
|
||||
$basedir = $this->params['basedir'];
|
||||
|
||||
if(!$this->callHook('sqldump')) {
|
||||
if(file_exists($basedir . $filename)) {
|
||||
header("Content-Type: application/zip; name=\"" . $filename . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($basedir . $filename ));
|
||||
$efilename = rawurlencode($filename);
|
||||
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
|
||||
header("Cache-Control: must-revalidate");
|
||||
|
||||
ob_clean();
|
||||
readfile($basedir.$filename);
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function approval() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$document = $this->params['document'];
|
||||
$logid = $this->params['approvelogid'];
|
||||
|
||||
$filename = $dms->contentDir . $document->getDir().'a'.$logid;
|
||||
if (!file_exists($filename) ) {
|
||||
$this->error = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$this->callHook('approval')) {
|
||||
if(file_exists($dms->contentDir . $filename)) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $filename);
|
||||
|
||||
header("Content-Type: ".$mimetype."; name=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($filename ));
|
||||
header("Content-Disposition: attachment; filename=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
|
||||
header("Cache-Control: must-revalidate");
|
||||
readfile($filename);
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function review() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$document = $this->params['document'];
|
||||
$logid = $this->params['reviewlogid'];
|
||||
|
||||
$filename = $dms->contentDir . $document->getDir().'r'.$logid;
|
||||
if (!file_exists($filename) ) {
|
||||
$this->error = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$this->callHook('review')) {
|
||||
if(file_exists($dms->contentDir . $filename)) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $filename);
|
||||
|
||||
header("Content-Type: ".$mimetype."; name=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($filename ));
|
||||
header("Content-Disposition: attachment; filename=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
|
||||
header("Cache-Control: must-revalidate");
|
||||
readfile($filename);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
public function run() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$type = $this->params['type'];
|
||||
|
||||
switch($type) {
|
||||
case "version":
|
||||
$this->version();
|
||||
break;
|
||||
case "file":
|
||||
$this->file();
|
||||
break;
|
||||
case "archive":
|
||||
$this->archive();
|
||||
break;
|
||||
case "log":
|
||||
$this->log();
|
||||
break;
|
||||
case "sqldump":
|
||||
$this->sqldump();
|
||||
break;
|
||||
case "approval":
|
||||
$this->approval();
|
||||
break;
|
||||
case "review":
|
||||
$this->review();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ if (!$accessop->check_controller_access($controller, $_POST)) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => "")),getMLText("access_denied"));
|
||||
}
|
||||
|
||||
if (isset($_GET["version"])) {
|
||||
if (isset($_GET["version"])) { /* {{{ */
|
||||
|
||||
// document download
|
||||
if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) {
|
||||
|
@ -69,10 +69,10 @@ if (isset($_GET["version"])) {
|
|||
}
|
||||
|
||||
$controller->setParam('content', $content);
|
||||
$controller->setParam('type', 'version');
|
||||
$controller->run();
|
||||
$controller->version();
|
||||
|
||||
} elseif (isset($_GET["file"])) {
|
||||
} /* }}} */
|
||||
elseif (isset($_GET["file"])) { /* {{{ */
|
||||
|
||||
// file download
|
||||
|
||||
|
@ -107,7 +107,8 @@ if (isset($_GET["version"])) {
|
|||
$controller->setParam('file', $file);
|
||||
$controller->setParam('type', 'file');
|
||||
$controller->run();
|
||||
} elseif (isset($_GET["arkname"])) {
|
||||
} /* }}} */
|
||||
elseif (isset($_GET["arkname"])) { /* {{{ */
|
||||
$filename = basename($_GET["arkname"]);
|
||||
|
||||
// backup download
|
||||
|
@ -120,29 +121,20 @@ if (isset($_GET["version"])) {
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("unknown_id"));
|
||||
}
|
||||
|
||||
if (!file_exists($settings->_contentDir.$filename) ) {
|
||||
if($settings->_backupDir && file_exists($settings->_backupDir))
|
||||
$basedir = $settings->_backupDir;
|
||||
else
|
||||
$basedir = $settings->_contentDir;
|
||||
|
||||
if (!file_exists($basedir.$filename) ) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
|
||||
}
|
||||
|
||||
header('Content-Description: File Transfer');
|
||||
//header("Content-Type: application/force-download; name=\"" . $filename . "\"");
|
||||
//header("Content-Type: application/octet-stream");
|
||||
header("Content-Type: application/zip");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($settings->_contentDir . $filename ));
|
||||
$efilename = rawurlencode($filename);
|
||||
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
|
||||
// header("Expires: 0");
|
||||
//header("Content-Type: " . $content->getMimeType());
|
||||
//header("Cache-Control: no-cache, must-revalidate");
|
||||
// header("Cache-Control: must-revalidate");
|
||||
header("Cache-Control: public");
|
||||
//header("Pragma: no-cache");
|
||||
|
||||
ob_clean();
|
||||
readfile($settings->_contentDir .$filename );
|
||||
|
||||
} elseif (isset($_GET["logname"])) {
|
||||
$controller->setParam('basedir', $basedir);
|
||||
$controller->setParam('file', $filename);
|
||||
$controller->archive();
|
||||
} /* }}} */
|
||||
elseif (isset($_GET["logname"])) { /* {{{ */
|
||||
$filename = basename($_GET["logname"]);
|
||||
|
||||
// log download
|
||||
|
@ -159,17 +151,12 @@ if (isset($_GET["version"])) {
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
|
||||
}
|
||||
|
||||
header("Content-Type: text/plain; name=\"" . $filename . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($settings->_contentDir . $filename ));
|
||||
$efilename = rawurlencode($filename);
|
||||
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
|
||||
header("Cache-Control: must-revalidate");
|
||||
$controller->setParam('file', $filename);
|
||||
$controller->setParam('basedir', $settings->_contentDir);
|
||||
$controller->log();
|
||||
|
||||
ob_clean();
|
||||
readfile($settings->_contentDir .$filename );
|
||||
|
||||
} elseif (isset($_GET["vfile"])) {
|
||||
} /* }}} */
|
||||
elseif (isset($_GET["vfile"])) { /* {{{ */
|
||||
|
||||
// versioning info download
|
||||
|
||||
|
@ -199,7 +186,8 @@ if (isset($_GET["version"])) {
|
|||
ob_clean();
|
||||
readfile($dms->contentDir . $document->getDir() .$settings->_versioningFileName);
|
||||
|
||||
} elseif (isset($_GET["dumpname"])) {
|
||||
} /* }}} */
|
||||
elseif (isset($_GET["dumpname"])) { /* {{{ */
|
||||
$filename = basename($_GET["dumpname"]);
|
||||
|
||||
// dump file download
|
||||
|
@ -212,25 +200,20 @@ if (isset($_GET["version"])) {
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("unknown_id"));
|
||||
}
|
||||
|
||||
if (!file_exists($settings->_contentDir.$filename) ) {
|
||||
if($settings->_backupDir && file_exists($settings->_backupDir))
|
||||
$basedir = $settings->_backupDir;
|
||||
else
|
||||
$basedir = $settings->_contentDir;
|
||||
|
||||
if (!file_exists($basedir.$filename) ) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
|
||||
}
|
||||
|
||||
header("Content-Type: application/zip; name=\"" . $filename . "\"");
|
||||
//header("Content-Type: application/force-download; name=\"" . $filename . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($settings->_contentDir . $filename ));
|
||||
$efilename = rawurlencode($filename);
|
||||
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
|
||||
//header("Expires: 0");
|
||||
//header("Content-Type: " . $content->getMimeType());
|
||||
//header("Cache-Control: no-cache, must-revalidate");
|
||||
header("Cache-Control: must-revalidate");
|
||||
//header("Pragma: no-cache");
|
||||
|
||||
ob_clean();
|
||||
readfile($settings->_contentDir .$filename );
|
||||
} elseif (isset($_GET["reviewlogid"])) {
|
||||
$controller->setParam('basedir', $basedir);
|
||||
$controller->setParam('file', $filename);
|
||||
$controller->sqldump();
|
||||
} /* }}} */
|
||||
elseif (isset($_GET["reviewlogid"])) { /* {{{ */
|
||||
if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id"));
|
||||
}
|
||||
|
@ -249,22 +232,17 @@ if (isset($_GET["version"])) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied"));
|
||||
}
|
||||
|
||||
$filename = $dms->contentDir . $document->getDir().'r'.(int) $_GET['reviewlogid'];
|
||||
if (!file_exists($filename) ) {
|
||||
$controller->setParam('document', $document);
|
||||
$controller->setParam('reviewlogid', (int) $_GET['reviewlogid']);
|
||||
$controller->setParam('type', 'review');
|
||||
$controller->run();
|
||||
switch($controller->getErrorNo()) {
|
||||
case 1:
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
|
||||
break;
|
||||
}
|
||||
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $filename);
|
||||
|
||||
header("Content-Type: ".$mimetype."; name=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($filename ));
|
||||
header("Content-Disposition: attachment; filename=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
|
||||
header("Cache-Control: must-revalidate");
|
||||
readfile($filename);
|
||||
|
||||
} elseif (isset($_GET["approvelogid"])) {
|
||||
} /* }}} */
|
||||
elseif (isset($_GET["approvelogid"])) { /* {{{ */
|
||||
if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id"));
|
||||
}
|
||||
|
@ -283,21 +261,16 @@ if (isset($_GET["version"])) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied"));
|
||||
}
|
||||
|
||||
$filename = $dms->contentDir . $document->getDir().'a'.(int) $_GET['approvelogid'];
|
||||
if (!file_exists($filename) ) {
|
||||
$controller->setParam('document', $document);
|
||||
$controller->setParam('reviewlogid', (int) $_GET['approvelogid']);
|
||||
$controller->setParam('type', 'approval');
|
||||
$controller->run();
|
||||
switch($controller->getErrorNo()) {
|
||||
case 1:
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
|
||||
break;
|
||||
}
|
||||
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $filename);
|
||||
|
||||
header("Content-Type: ".$mimetype."; name=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Content-Length: " . filesize($filename ));
|
||||
header("Content-Disposition: attachment; filename=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
|
||||
header("Cache-Control: must-revalidate");
|
||||
readfile($filename);
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
add_log_line();
|
||||
exit();
|
||||
|
|
Loading…
Reference in New Issue
Block a user