Open Journal Systems  3.3.0
NativeXmlArticleFilter.inc.php
1 <?php
2 
16 import('lib.pkp.plugins.importexport.native.filter.NativeXmlSubmissionFilter');
17 
23  function __construct($filterGroup) {
24  parent::__construct($filterGroup);
25  }
26 
27 
28  //
29  // Implement template methods from PersistableFilter
30  //
34  function getClassName() {
35  return 'plugins.importexport.native.filter.NativeXmlArticleFilter';
36  }
37 
43  return 'insertObject';
44  }
45 
51  function &process(&$document) {
52  $importedObjects =& parent::process($document);
53 
54  $deployment = $this->getDeployment();
55  $submission = $deployment->getSubmission();
56 
57  // Index imported content
58  $articleSearchIndex = Application::getSubmissionSearchIndex();
59  foreach ($importedObjects as $submission) {
60  assert(is_a($submission, 'Submission'));
61  $articleSearchIndex->submissionMetadataChanged($submission);
62  $articleSearchIndex->submissionFilesChanged($submission);
63  }
64 
65  $articleSearchIndex->submissionChangesFinished();
66 
67  return $importedObjects;
68  }
69 
76  function populateObject($submission, $node) {
77  return parent::populateObject($submission, $node);
78  }
79 
85  function handleChildElement($n, $submission) {
86  switch ($n->tagName) {
87  case 'artwork_file':
88  case 'supplementary_file':
89  $this->parseSubmissionFile($n, $submission);
90  break;
91  default:
92  parent::handleChildElement($n, $submission);
93  }
94  }
95 
101  function getImportFilter($elementName) {
102  $deployment = $this->getDeployment();
103  $submission = $deployment->getSubmission();
104  switch ($elementName) {
105  case 'submission_file':
106  $importClass='SubmissionFile';
107  break;
108  case 'artwork_file':
109  $importClass='SubmissionArtworkFile';
110  break;
111  case 'supplementary_file':
112  $importClass='SupplementaryFile';
113  break;
114  case 'publication':
115  $importClass='Publication';
116  break;
117  default:
118  $importClass=null; // Suppress scrutinizer warn
119  $deployment->addWarning(ASSOC_TYPE_SUBMISSION, $submission->getId(), __('plugins.importexport.common.error.unknownElement', array('param' => $elementName)));
120  }
121  // Caps on class name for consistency with imports, whose filter
122  // group names are generated implicitly.
123  $filterDao = DAORegistry::getDAO('FilterDAO'); /* @var $filterDao FilterDAO */
124  $importFilters = $filterDao->getObjectsByGroup('native-xml=>' . $importClass);
125  $importFilter = array_shift($importFilters);
126  return $importFilter;
127  }
128 }
NativeXmlArticleFilter\__construct
__construct($filterGroup)
Definition: NativeXmlArticleFilter.inc.php:23
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
NativeImportExportFilter\getDeployment
getDeployment()
Definition: NativeImportExportFilter.inc.php:49
NativeXmlSubmissionFilter\parseSubmissionFile
parseSubmissionFile($n, $submission)
Definition: NativeXmlSubmissionFilter.inc.php:167
NativeXmlArticleFilter\handleChildElement
handleChildElement($n, $submission)
Definition: NativeXmlArticleFilter.inc.php:85
NativeXmlArticleFilter
Class that converts a Native XML document to a set of articles.
Definition: NativeXmlArticleFilter.inc.php:18
NativeXmlArticleFilter\populateObject
populateObject($submission, $node)
Definition: NativeXmlArticleFilter.inc.php:76
NativeXmlArticleFilter\process
& process(&$document)
Definition: NativeXmlArticleFilter.inc.php:51
NativeXmlArticleFilter\getImportFilter
getImportFilter($elementName)
Definition: NativeXmlArticleFilter.inc.php:101
NativeXmlArticleFilter\getPublishedSubmissionInsertMethod
getPublishedSubmissionInsertMethod()
Definition: NativeXmlArticleFilter.inc.php:42
Application\getSubmissionSearchIndex
static getSubmissionSearchIndex()
Definition: Application.inc.php:169
NativeXmlSubmissionFilter
Base class that converts a Native XML document to a set of submissions.
Definition: NativeXmlSubmissionFilter.inc.php:18
NativeXmlArticleFilter\getClassName
getClassName()
Definition: NativeXmlArticleFilter.inc.php:34