diff --git a/controllers/class.Download.php b/controllers/class.Download.php index 81a8c6ba7..9f8c0d2f9 100644 --- a/controllers/class.Download.php +++ b/controllers/class.Download.php @@ -28,25 +28,29 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { switch($type) { case "version": - $version = $this->params['version']; - $document = $this->params['document']; - if($version < 1) { - $content = $this->callHook('documentLatestContent', $document); - if($content === null) - $content = $document->getLatestContent(); + if(empty($this->params['content'])) { + $version = $this->params['version']; + $document = $this->params['document']; + if($version < 1) { + $content = $this->callHook('documentLatestContent', $document); + if($content === null) + $content = $document->getLatestContent(); + } else { + $content = $this->callHook('documentContent', $document, $version); + if($content === null) + $content = $document->getContentByVersion($version); + } + if (!is_object($content)) { + $this->errormsg = 'invalid_version'; + return false; + } + /* set params['content'] for compatiblity with older extensions which + * expect the content in the controller + */ + $this->params['content'] = $content; } else { - $content = $this->callHook('documentContent', $document, $version); - if($content === null) - $content = $document->getContentByVersion($version); + $content = $this->params['content']; } - if (!is_object($content)) { - $this->errormsg = 'invalid_version'; - return false; - } - /* set params['content'] for compatiblity with older extensions which - * expect the content in the controller - */ - $this->params['content'] = $content; if(null === $this->callHook('version')) { if(file_exists($dms->contentDir . $content->getPath())) { header("Content-Transfer-Encoding: binary");