17 import(
'lib.pkp.classes.plugins.GatewayPlugin');
43 parent::__construct();
45 $this->_parentPluginName = $parentPluginName;
55 $this->
import(
'classes.MarkupConversionHelper');
79 return 'MarkupGatewayPlugin';
88 return __(
'plugins.generic.markup.displayName');
97 return __(
'plugins.generic.markup.description');
116 return $plugin->getPluginPath();
126 return $plugin->getTemplatePath();
136 return $plugin->getCssPath();
146 return $plugin->getJsPath();
156 return $plugin->getEnabled();
183 foreach ($args as $index => $arg) {
184 if ($arg ==
'true') $arg =
true;
185 if ($arg ==
'false') $arg =
false;
187 if ($index % 2 == 0) {
193 $args = array_combine($keys, $values);
198 echo __(
'plugins.generic.markup.archive.enable');
205 echo __(
'plugins.generic.markup.archive.noJournal');
210 $fileId = isset($args[
'fileId']) ? (int) $args[
'fileId'] :
false;
212 echo __(
'plugins.generic.markup.archive.noArticleID');
218 $userId = isset($args[
'userId']) ? (int) $args[
'userId'] :
false;
220 fatalError(__(
'plugins.generic.markup.archive.noArticleID'));
225 $accessKey = isset($args[
'accessKey']) ? $args[
'accessKey'] :
null;
226 if (empty($accessKey)) {
227 fatalError(__(
'plugins.generic.markup.archive.noAccessKey'));
232 $submissionFile = $submissionFileDao->getLatestRevision($fileId);
233 if (empty($submissionFile)) {
234 echo __(
'plugins.generic.markup.archive.noArticle');
238 $this->_fileId = $fileId;
239 $this->_user = $userDao->getById($args[
'userId']);
240 $this->_jobId = isset($args[
'jobId']) ? $args[
'jobId'] :
'';
241 $this->_stageId = isset($args[
'stageId']) ? (int) $args[
'stageId'] :
false;
244 $this->_plugin->import(
'classes.MarkupConversionHelper');
246 fatalError(__(
'plugins.generic.markup.archive.noAccessKey'));
254 $this->_conversionHelper =
new MarkupConversionHelper($this->_plugin, $this->_xmlpsWrapper, $this->_user);
257 $stageId = (int)$args[
'stageId'];
258 $target = strval($args[
'target']);
259 $this->
_process($submissionFile, $submissionFile->getFileStage(), $target);
271 function _process($submissionFile, $fileStage, $target) {
273 $journalId = $journal->getId();
276 $submission = $submissionDao->getById($submissionFile->getSubmissionId());
281 $jobId = $this->_conversionHelper->triggerConversion($journal, $submissionFile, $stage, $target, $this->_jobId);
282 $tmpZipFile = $this->_conversionHelper->retrieveConversionJobArchive($submissionFile, $jobId);
283 if (($tmpZipFile ==
false) || !file_exists($tmpZipFile)) {
288 catch (Exception $e) {
290 error_log(
'EXCEPTION!!! ' . $e->getMessage());
298 $extractionPath =
null;
299 if (($extractionPath = $this->_conversionHelper->unzipArchive($tmpZipFile)) ===
false) {
304 $userGroups = $userGroupDao->getByUserId($this->_user->getId(), $journal->getId());
305 $userGroup = $userGroups->next();
307 $fileName =
"document" .
'__' . date(
'Y-m-d_h:i:s');
309 case 'xml-conversion':
310 $this->_conversionHelper->handleArchiveExtractionAfterXmlConversion(
320 case 'galley-generate':
321 $this->_conversionHelper->handleArchiveExtractionAfterGalleyGenerate(
331 @unlink($tmpZipFile);
332 @rmdir($extractionPath);