00001 <?php
00018 import('lib.pkp.classes.linkAction.LinkAction');
00019
00020 class DownloadAllLinkAction extends LinkAction {
00021
00028 function DownloadAllLinkAction(&$request, $actionArgs, $files) {
00029
00030 $router =& $request->getRouter();
00031 $filesIdsAndRevisions = $this->_getFilesIdsAndRevisions($files);
00032 $actionArgs['filesIdsAndRevisions'] = $filesIdsAndRevisions;
00033 import('lib.pkp.classes.linkAction.request.PostAndRedirectAction');
00034 $redirectRequest = new PostAndRedirectAction($router->url($request, null, 'api.file.FileApiHandler', 'recordDownload', null, $actionArgs),
00035 $router->url($request, null, 'api.file.FileApiHandler', 'downloadAllFiles', null, $actionArgs));
00036
00037
00038 parent::LinkAction('downloadAll', $redirectRequest, __('submission.files.downloadAll'), 'getPackage');
00039 }
00040
00041
00042
00043
00044
00050 function _getFilesIdsAndRevisions($files) {
00051 $filesIdsAndRevisions = null;
00052 foreach ($files as $fileData) {
00053 $file =& $fileData['submissionFile'];
00054 $fileId = $file->getFileId();
00055 $revision = $file->getRevision();
00056 $filesIdsAndRevisions .= $fileId . '-' . $revision . ';';
00057 unset($file);
00058 }
00059
00060 return $filesIdsAndRevisions;
00061 }
00062 }
00063
00064 ?>