Open Journal Systems  3.3.0
NativeXmlArticleGalleyFilter.inc.php
1 <?php
2 
16 import('lib.pkp.plugins.importexport.native.filter.NativeXmlRepresentationFilter');
17 
23  function __construct($filterGroup) {
24  parent::__construct($filterGroup);
25  }
26 
27  //
28  // Implement template methods from NativeImportFilter
29  //
34  function getPluralElementName() {
35  return 'article_galleys'; // defined if needed in the future.
36  }
37 
43  return 'article_galley';
44  }
45 
46  //
47  // Implement template methods from PersistableFilter
48  //
52  function getClassName() {
53  return 'plugins.importexport.native.filter.NativeXmlArticleGalleyFilter';
54  }
55 
56 
62  function handleElement($node) {
63  $deployment = $this->getDeployment();
64  $context = $deployment->getContext();
65  $submission = $deployment->getSubmission();
66  assert(is_a($submission, 'Submission'));
67 
68  $submissionFileRefNodes = $node->getElementsByTagName('submission_file_ref');
69  assert($submissionFileRefNodes->length <= 1);
70  $addSubmissionFile = false;
71  if ($submissionFileRefNodes->length == 1) {
72  $fileNode = $submissionFileRefNodes->item(0);
73  $fileId = $fileNode->getAttribute('id');
74  $revisionId = $fileNode->getAttribute('revision');
75  $dbFileId = $deployment->getFileDBId($fileId, $revisionId);
76  if ($dbFileId) $addSubmissionFile = true;
77  }
78  $representation = parent::handleElement($node);
79 
80  for ($n = $node->firstChild; $n !== null; $n=$n->nextSibling) if (is_a($n, 'DOMElement')) switch($n->tagName) {
81  case 'name':
82  // Labels are not localized in OJS ArticleGalleys, but we use the <name locale="....">...</name> structure.
83  $locale = $n->getAttribute('locale');
84  if (empty($locale)) $locale = $submission->getLocale();
85  $representation->setLabel($n->textContent);
86  $representation->setLocale($locale);
87  break;
88  }
89 
90  $representationDao = Application::getRepresentationDAO();
91  if ($addSubmissionFile) $representation->setFileId($dbFileId);
92  $representationDao->insertObject($representation);
93 
94  if ($addSubmissionFile) {
95  // Update the submission file.
96  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
97  $submissionFile = $submissionFileDao->getRevision($dbFileId, $revisionId);
98  $submissionFile->setAssocType(ASSOC_TYPE_REPRESENTATION);
99  $submissionFile->setAssocId($representation->getId());
100  $submissionFileDao->updateObject($submissionFile);
101  }
102 
103  // representation proof files
104  return $representation;
105  }
106 
113  function _processFileRef($node, $deployment, $representation) {
114  }
115 }
116 
117 
Application\getRepresentationDAO
static getRepresentationDAO()
Definition: Application.inc.php:162
NativeXmlArticleGalleyFilter\__construct
__construct($filterGroup)
Definition: NativeXmlArticleGalleyFilter.inc.php:23
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
NativeXmlArticleGalleyFilter\getClassName
getClassName()
Definition: NativeXmlArticleGalleyFilter.inc.php:52
NativeXmlRepresentationFilter
Base class that converts a Native XML document to a set of authors.
Definition: NativeXmlRepresentationFilter.inc.php:18
NativeImportExportFilter\getDeployment
getDeployment()
Definition: NativeImportExportFilter.inc.php:49
NativeXmlArticleGalleyFilter\_processFileRef
_processFileRef($node, $deployment, $representation)
Definition: NativeXmlArticleGalleyFilter.inc.php:113
NativeXmlArticleGalleyFilter\handleElement
handleElement($node)
Definition: NativeXmlArticleGalleyFilter.inc.php:62
NativeXmlArticleGalleyFilter
Class that converts a Native XML document to a set of publication formats.
Definition: NativeXmlArticleGalleyFilter.inc.php:18
NativeXmlArticleGalleyFilter\getPluralElementName
getPluralElementName()
Definition: NativeXmlArticleGalleyFilter.inc.php:34
NativeXmlArticleGalleyFilter\getSingularElementName
getSingularElementName()
Definition: NativeXmlArticleGalleyFilter.inc.php:42