function download($args, $request)
{
$articleId = isset($args[0]) ? $args[0] : 0;
$galleyId = isset($args[1]) ? $args[1] : 0;
$fileId = isset($args[2]) ? (int) $args[2] : 0;
if ($this->galley->getRemoteURL()) {
$request->redirectUrl($this->galley->getRemoteURL());
}
if ($this->userCanViewGalley($request, $articleId, $galleyId)) {
if (!$fileId) {
$submissionFile = $this->galley->getFile();
if ($submissionFile) {
$fileId = $submissionFile->getFileId();
// The file manager expects the real article id. Extract it from the submission file.
$articleId = $submissionFile->getSubmissionId();
} else {
// no proof files assigned to this galley!
return null;
}
}
if (!HookRegistry::call('ArticleHandler::download', array($this->article, &$this->galley, &$fileId))) {
import('lib.pkp.classes.file.SubmissionFileManager');
$submissionFileManager = new SubmissionFileManager($this->article->getContextId(), $this->article->getId());
$submissionFileManager->downloadFile($fileId, null, $request->getUserVar('inline') ? true : false);
}
}
}