26 define(
'STATUS_QUEUED', 1);
27 define(
'STATUS_PUBLISHED', 3);
28 define(
'STATUS_DECLINED', 4);
29 define(
'STATUS_SCHEDULED', 5);
32 define (
'PERMISSIONS_FIELD_LICENSE_URL', 1);
33 define (
'PERMISSIONS_FIELD_COPYRIGHT_HOLDER', 2);
34 define (
'PERMISSIONS_FIELD_COPYRIGHT_YEAR', 3);
44 parent::__construct();
69 $publicationId = $this->
getData(
'currentPublicationId');
70 $publications = $this->
getData(
'publications');
71 if (!$publicationId || empty($publications)) {
74 foreach ($publications as $publication) {
75 if ($publication->getId() === $publicationId) {
89 $publications = $this->
getData(
'publications');
90 if (empty($publications)) {
93 return array_reduce($publications,
function($a, $b) {
94 return $a && $a->getId() > $b->getId() ? $a : $b;
106 $publications = $this->
getData(
'publications');
107 if (empty($publications)) {
110 return array_filter($publications,
function($publication) {
111 return $publication->getData(
'status') === STATUS_PUBLISHED;
143 if (!isset($statusMap)) {
145 STATUS_QUEUED =>
'submissions.queued',
146 STATUS_PUBLISHED =>
'submission.status.published',
147 STATUS_DECLINED =>
'submission.status.declined',
148 STATUS_SCHEDULED =>
'submission.status.scheduled',
160 return $statusMap[$this->
getData(
'status')];
202 return $publication->getLocalizedData(
'copyrightHolder', $preferredLocale);
211 return $this->
getData(
'contextId');
220 $this->
setData(
'contextId', $contextId);
235 return $publication->getLocalizedData($key, $preferredLocale);
253 return $publication->getData(
'pub-id::'.$pubIdType);
267 $this->
setData(
'pub-id::'.$pubIdType, $pubId);
282 return $publication->getData(
'copyrightHolder', $locale);
294 $publication->setData(
'copyrightHolder', $copyrightHolder, $locale);
308 return $publication->getData(
'copyrightYear');
319 $publication->setData(
'copyrightYear', $copyrightYear);
333 return $publication->getData(
'licenseUrl');
344 $publication->setData(
'licenseUrl', $licenseURL);
356 $publication->setData(
'hideAuthor', $hideAuthor);
374 $userGroupIds = array_map(
function($author) {
375 return $author->getData(
'userGroupId');
377 $userGroups = array_map(
function($userGroupId) {
379 return $userGroupDao->getbyId($userGroupId);
380 }, array_unique($userGroupIds));
382 return $publication->getAuthorString($userGroups);
395 return $publication->getShortAuthorString();
406 import(
'lib.pkp.classes.mail.Mail');
408 foreach($authors as $author) {
425 $authors = $publication->getData(
'authors');
426 if (empty($authors)) {
429 if ($onlyIncludeInBrowse) {
430 return array_filter($authors,
function($author) {
return $author->getData(
'includeInBrowse'); });
445 return $publication->getPrimaryAuthor();
458 return $publication->getData(
'locale');
469 $publication->setData(
'locale', $locale);
485 return $publication->getLocalizedTitle($preferredLocale);
495 function getTitle($locale, $includePrefix =
true) {
498 return $locale ?
'' : [];
500 if ($includePrefix) {
501 if (is_null($locale)) {
502 return $publication->getTitles();
504 return $publication->getLocalizedTitle($locale);
506 return $publication->getData(
'title');
516 $this->
setData(
'title', $title, $locale);
529 return $publication->getLocalizedData(
'subtitle');
543 return $publication->getData(
'subtitle', $locale);
555 $this->
setData(
'subtitle', $subtitle, $locale);
570 return $publication->getLocalizedFullTitle();
583 return $locale ?
'' : [];
586 return $publication->getLocalizedFullTitle($locale);
588 return $publication->getFullTitles();
601 return $publication->getLocalizedData(
'prefix');
613 return $locale ?
'' : [];
615 return $publication->getData(
'prefix', $locale);
627 $publication->setData(
'prefix', $prefix, $locale);
641 return $publication->getLocalizedData(
'abstract');
653 return $locale ?
'' : [];
655 return $publication->getData(
'abstract', $locale);
667 $publication->setData(
'abstract', $abstract, $locale);
681 return $publication->getLocalizedData(
'discipline');
693 return $locale ?
'' : [];
695 return $publication->getData(
'discipline', $locale);
707 $publication->setData(
'discipline', $discipline, $locale);
721 return $publication->getLocalizedData(
'subject');
733 return $locale ?
'' : [];
735 return $publication->getData(
'subjects', $locale);
747 $publication->setData(
'subjects', $subject, $locale);
761 return $publication->getLocalizedData(
'coverage');
773 return $locale ?
'' : [];
775 return $publication->getData(
'coverage', $locale);
787 $publication->setData(
'coverage', $coverage, $locale);
801 return $publication->getLocalizedData(
'type');
813 return $locale ?
'' : [];
815 return $publication->getData(
'type', $locale);
827 $publication->setData(
'type', $type, $locale);
840 return $locale ?
'' : [];
842 return $publication->getData(
'rights', $locale);
854 $publication->setData(
'rights', $rights, $locale);
867 return $locale ?
'' : [];
869 return $publication->getData(
'source', $locale);
881 $publication->setData(
'source', $source, $locale);
895 return $publication->getData(
'languages');
906 $publication->setData(
'languages', $language);
920 return $publication->getLocalizedData(
'sponsor');
932 return $locale ?
'' : [];
934 return $publication->getData(
'sponsor', $locale);
946 $publication->setData(
'sponsor', $sponsor, $locale);
959 return $locale ?
'' : [];
961 return $publication->getData(
'copyrightNotice', $locale);
973 $publication->setData(
'copyrightNotice', $copyrightNotice, $locale);
987 return $publication->getData(
'citationsRaw');
998 $publication->setData(
'citationsRaw', $citations);
1008 return $this->
getData(
'dateSubmitted');
1017 $this->
setData(
'dateSubmitted', $dateSubmitted);
1026 return $this->
getData(
'dateLastActivity');
1035 $this->
setData(
'dateLastActivity', $dateModified);
1044 return $this->
getData(
'lastModified');
1053 $this->
setData(
'lastModified', $dateModified);
1062 return $this->
getData(
'status');
1071 $this->
setData(
'status', $status);
1080 return $this->
getData(
'submissionProgress');
1089 $this->
setData(
'submissionProgress', $submissionProgress);
1099 if (!$publication) {
1102 return $publication->getData(
'pages');
1112 return $publication ? $publication->getStartingPage() :
'';
1122 return $publication ? $publication->getEndingPage() :
'';
1133 return $publication ? $publication->getPageArray() :
'';
1144 $publication->setData(
'pages', $pages);
1154 return $this->
getData(
'stageId');
1163 $this->
setData(
'stageId', $stageId);
1173 if (!$publication) {
1176 return $publication->getData(
'datePublished');
1187 $publication->setData(
'datePublished', $datePublished);
1199 return $publication && $publication->isCCLicense();
1208 return $application->getPrimaryMetricByAssoc(ASSOC_TYPE_SUBMISSION, $this->
getId());