16 import(
'lib.pkp.plugins.importexport.native.filter.NativeImportFilter');
25 parent::__construct($filterGroup);
35 return 'plugins.importexport.native.filter.NativeXmlIssueGalleyFilter';
46 return 'issue_galleys';
54 return 'issue_galley';
67 $context = $deployment->getContext();
68 $issue = $deployment->getIssue();
69 assert(is_a($issue,
'Issue'));
73 $issueGalley = $issueGalleyDao->newDataObject();
74 $issueGalley->setIssueId($issue->getId());
75 $locale = $node->getAttribute(
'locale');
76 if (empty($locale)) $locale = $context->getPrimaryLocale();
77 $issueGalley->setLocale($locale);
78 $issueGalley->setSequence($issueGalleyDao->getNextGalleySequence($issue->getId()));
81 for ($n = $node->firstChild; $n !==
null; $n=$n->nextSibling)
if (is_a($n,
'DOMElement'))
switch($n->tagName) {
85 case 'label': $issueGalley->setLabel($n->textContent);
break;
88 $issueFile = $issueFileDao->newDataObject();
89 $issueFile->setIssueId($issue->getId());
91 for ($o = $n->firstChild; $o !==
null; $o=$o->nextSibling)
if (is_a($o,
'DOMElement'))
switch($o->tagName) {
92 case 'file_name': $issueFile->setServerFileName($o->textContent);
break;
93 case 'file_type': $issueFile->setFileType($o->textContent);
break;
94 case 'file_size': $issueFile->setFileSize($o->textContent);
break;
95 case 'content_type': $issueFile->setContentType((
int)$o->textContent);
break;
96 case 'original_file_name': $issueFile->setOriginalFileName($o->textContent);
break;
97 case 'date_uploaded': $issueFile->setDateUploaded($o->textContent);
break;
98 case 'date_modified': $issueFile->setDateModified($o->textContent);
break;
100 import(
'classes.file.IssueFileManager');
102 $filePath = $issueFileManager->getFilesDir() . $issueFileManager->contentTypeToPath($issueFile->getContentType()) .
'/' . $issueFile->getServerFileName();
103 $issueFileManager->writeFile($filePath, base64_decode($o->textContent));
106 $issueFileId = $issueFileDao->insertObject($issueFile);
107 $issueGalley->setFileId($issueFileId);
111 $issueGalleyDao->insertObject($issueGalley);
122 $advice = $element->getAttribute(
'advice');
123 switch ($element->getAttribute(
'type')) {
126 assert(!$advice || $advice ==
'ignore');
129 if ($advice ==
'update') {
130 $issue->setStoredPubId(
'publisher-id', $element->textContent);