16 import(
'lib.pkp.plugins.importexport.native.filter.NativeXmlPKPPublicationFilter');
26 return 'plugins.importexport.native.filter.NativeXmlPublicationFilter';
37 $context = $deployment->getContext();
39 $seriesPath = $node->getAttribute(
'series');
40 $seriesPosition = $node->getAttribute(
'series_position');
41 if ($seriesPath !==
'') {
43 $series = $seriesDao->getByPath($seriesPath, $context->getId());
45 $deployment->addError(ASSOC_TYPE_PUBLICATION, $publication->getId(), __(
'plugins.importexport.native.error.unknownSeries', array(
'param' => $seriesPath)));
47 $publication->setData(
'seriesId', $series->getId());
48 $publication->setData(
'seriesPosition', $seriesPosition);
52 return parent::populateObject($publication, $node);
61 switch ($n->tagName) {
62 case 'publication_format':
72 parent::handleChildElement($n, $publication);
83 $publication = $deployment->getPublication();
85 switch ($elementName) {
86 case 'publication_format':
87 $importClass=
'PublicationFormat';
90 $importClass=
'Chapter';
93 $deployment->addError(ASSOC_TYPE_PUBLICATION, $publication->getId(), __(
'plugins.importexport.common.error.unknownElement', array(
'param' => $elementName)));
98 $importFilters = $filterDao->getObjectsByGroup(
'native-xml=>' . $importClass);
99 $importFilter = array_shift($importFilters);
100 return $importFilter;
110 assert($importFilter);
116 $onixDeployment->setPublication($existingDeployment->getPublication());
117 $onixDeployment->setFileDBIds($existingDeployment->getFileDBIds());
118 $onixDeployment->setAuthorDBIds($existingDeployment->getAuthorDBIds());
119 $importFilter->setDeployment($existingDeployment);
120 $formatDoc =
new DOMDocument();
121 $formatDoc->appendChild($formatDoc->importNode($n,
true));
122 return $importFilter->execute($formatDoc);
135 for ($n = $node->firstChild; $n !==
null; $n=$n->nextSibling) {
136 if (is_a($n,
'DOMElement')) {
137 switch ($n->tagName) {
140 $chapters[] = $chapter;
143 $deployment->addWarning(ASSOC_TYPE_PUBLICATION, $publication->getId(), __(
'plugins.importexport.common.error.unknownElement', array(
'param' => $n->tagName)));
148 $publication->setData(
'chapters', $chapters);
158 assert($importFilter);
163 $importFilter->setDeployment($existingDeployment);
164 $chapterDoc =
new DOMDocument();
165 $chapterDoc->appendChild($chapterDoc->importNode($n,
true));
166 return $importFilter->execute($chapterDoc);
176 $deployment = $filter->getDeployment();
178 $coverImages = array();
180 for ($n = $node->firstChild; $n !==
null; $n=$n->nextSibling) {
181 if (is_a($n,
'DOMElement')) {
182 switch ($n->tagName) {
185 $coverImages[key($coverImage)] = reset($coverImage);
188 $deployment->addWarning(ASSOC_TYPE_PUBLICATION, $object->getId(), __(
'plugins.importexport.common.error.unknownElement', array(
'param' => $n->tagName)));
193 $object->setData(
'coverImage', $coverImages);
203 $deployment = $filter->getDeployment();
205 $context = $deployment->getContext();
207 $locale = $node->getAttribute(
'locale');
208 if (empty($locale)) $locale = $context->getPrimaryLocale();
210 $coverImagelocale = array();
211 $coverImage = array();
213 for ($n = $node->firstChild; $n !==
null; $n=$n->nextSibling) {
214 if (is_a($n,
'DOMElement')) {
215 switch ($n->tagName) {
217 $coverImage[
'uploadName'] = $n->textContent;
219 case 'cover_image_alt_text':
220 $coverImage[
'altText'] = $n->textContent;
223 import(
'classes.file.PublicFileManager');
225 $filePath = $publicFileManager->getContextFilesPath($context->getId()) .
'/' . $coverImage[
'uploadName'];
226 file_put_contents($filePath, base64_decode($n->textContent));
229 $deployment->addWarning(ASSOC_TYPE_PUBLICATION, $object->getId(), __(
'plugins.importexport.common.error.unknownElement', array(
'param' => $n->tagName)));
234 $coverImagelocale[$locale] = $coverImage;
236 return $coverImagelocale;
244 return 'publication-format=>native-xml';