16 import(
'classes.plugins.PubObjectsExportPlugin');
19 define(
'DOI_EXPORT_CONFIG_ERROR_DOIPREFIX', 0x01);
22 define(
'DOI_EXPORT_REGISTERED_DOI',
'registeredDoi');
31 switch (array_shift($args)) {
36 $configurationErrors = $templateMgr->getTemplateVars(
'configurationErrors');
40 if (isset($pubIdPlugins[
'doipubidplugin'])) {
41 $doiPlugin = $pubIdPlugins[
'doipubidplugin'];
42 $doiPrefix = $doiPlugin->getSetting($context->getId(), $doiPlugin->getPrefixFieldName());
43 $templateMgr->assign(array(
44 'exportArticles' => $doiPlugin->getSetting($context->getId(),
'enablePublicationDoi'),
45 'exportIssues' => $doiPlugin->getSetting($context->getId(),
'enableIssueDoi'),
46 'exportRepresentations' => $doiPlugin->getSetting($context->getId(),
'enableRepresentationDoi'),
49 if (empty($doiPrefix)) {
50 $configurationErrors[] = DOI_EXPORT_CONFIG_ERROR_DOIPREFIX;
79 foreach ($objects as $object) {
97 $registeredDoi = $object->getStoredPubId(
'doi');
98 assert(!empty($registeredDoi));
111 return array_merge(parent::_getObjectAdditionalSettings(), array(
124 $articles = $submissionDao->getExportable(
126 $this->getPubIdType(),
130 $this->getPluginSettingsPrefix().
'::' . DOI_EXPORT_REGISTERED_DOI,
134 return $articles->toArray();
145 $issuesFactory = $issueDao->getExportable(
147 $this->getPubIdType(),
148 $this->getPluginSettingsPrefix().
'::' . DOI_EXPORT_REGISTERED_DOI,
152 $issues = $issuesFactory->toArray();
155 foreach ($issues as $issue) {
156 $cache->add($issue,
null);
170 $galleys = $galleyDao->getExportable(
171 $context?$context->getId():
null,
172 $this->getPubIdType(),
176 $this->getPluginSettingsPrefix().
'::' . DOI_EXPORT_REGISTERED_DOI,
180 return $galleys->toArray();
190 $submissions = array_map(
function($submissionId) {
193 return array_filter($submissions,
function($submission) {
194 return $submission->getData(
'status') === STATUS_PUBLISHED && !!$submission->getStoredPubId(
'doi');
205 $publishedIssues = array();
207 foreach ($issueIds as $issueId) {
208 $publishedIssue = $issueDao->getById($issueId, $context->getId());
209 if ($publishedIssue && $publishedIssue->getStoredPubId(
'doi')) $publishedIssues[] = $publishedIssue;
211 return $publishedIssues;
222 foreach ($galleyIds as $galleyId) {
223 $articleGalley = $articleGalleyDao->getById($galleyId);
224 if ($articleGalley && $articleGalley->getStoredPubId(
'doi')) $galleys[] = $articleGalley;