[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
v1
/
lib
/
pkp
/
classes
/
submission
/
[
Home
]
File: PKPSubmission.php
<?php /** * @defgroup submission Submission * The abstract concept of a submission is implemented here, and extended * in each application with the specifics of that content model, i.e. * Articles in OJS, Preprints in OPS, and Monographs in OMP. */ /** * @file classes/submission/PKPSubmission.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class PKPSubmission * * @ingroup submission * * @see DAO * * @brief The Submission class implements the abstract data model of a * scholarly submission. */ namespace PKP\submission; use APP\core\Application; use APP\core\Services; use APP\facades\Repo; use APP\publication\Publication; use APP\statistics\StatisticsHelper; use APP\submission\DAO; use Illuminate\Support\LazyCollection; use PKP\core\Core; use PKP\facades\Locale; /** * @extends \PKP\core\DataObject<DAO> */ abstract class PKPSubmission extends \PKP\core\DataObject { // Submission status constants public const STATUS_QUEUED = 1; public const STATUS_PUBLISHED = 3; public const STATUS_DECLINED = 4; public const STATUS_SCHEDULED = 5; // License settings (internal use only) public const PERMISSIONS_FIELD_LICENSE_URL = 1; public const PERMISSIONS_FIELD_COPYRIGHT_HOLDER = 2; public const PERMISSIONS_FIELD_COPYRIGHT_YEAR = 3; /** * Constructor. */ public function __construct() { // Switch on meta-data adapter support. $this->setHasLoadableAdapters(true); parent::__construct(); } /** * Return the "best" article ID -- If a urlPath is set, * use it; otherwise use the internal article Id. * * @return string * * @deprecated 3.2.0.0 */ public function getBestId() { return strlen($urlPath = (string) $this->getCurrentPublication()?->getData('urlPath')) ? $urlPath : $this->getId(); } /** * Get the current publication * * Uses the `currentPublicationId` to get the current * Publication object from the submission's list of * publications. * * @return Publication|null */ public function getCurrentPublication() { $publicationId = $this->getData('currentPublicationId'); $publications = $this->getData('publications'); if (!$publicationId || empty($publications)) { return null; } foreach ($publications as $publication) { if ($publication->getId() === $publicationId) { return $publication; } } } /** * Get the first publication * * Returns the first created publication * * @return Publication|null */ public function getOriginalPublication() { $publishedPublications = $this->getPublishedPublications(); if (empty($publishedPublications)) { return null; } return array_reduce($publishedPublications, function ($a, $b) { return $a && $a->getId() < $b->getId() ? $a : $b; }); } /** * Get the latest publication * * Returns the most recently created publication by ID * * @return Publication|null */ public function getLatestPublication() { $publications = $this->getData('publications'); /** @var \Illuminate\Support\Enumerable $publications */ if (empty($publications)) { return null; } return $publications->reduce(function ($a, $b) { return $a && $a->getId() > $b->getId() ? $a : $b; }); } /** * Get the published publications * * Returns publications with the STATUS_PUBLISHED status * * @return array */ public function getPublishedPublications() { $publications = $this->getData('publications'); /** @var LazyCollection $publications */ if ($publications->isEmpty()) { return []; } return $publications->filter(function ($publication) { return $publication->getData('status') === self::STATUS_PUBLISHED; })->toArray(); } /** * Stamp the date of the last modification to the current time. */ public function stampModified() { return $this->setData('lastModified', Core::getCurrentDate()); } /** * Stamp the date of the last recorded activity to the current time */ public function stampLastActivity() { return $this->setData('dateLastActivity', Core::getCurrentDate()); } /** * Stamp the date of the last status modification to the current time. * * @deprecated 3.2.0.0 */ public function stampStatusModified() { return $this->stampLastActivity(); } /** * Get a map for status constant to locale key. * * @return array */ public function &getStatusMap() { static $statusMap = [ self::STATUS_QUEUED => 'submissions.queued', self::STATUS_PUBLISHED => 'submission.status.published', self::STATUS_DECLINED => 'submission.status.declined', self::STATUS_SCHEDULED => 'submission.status.scheduled', ]; return $statusMap; } /** * Get a locale key for the paper's current status. * * @return string */ public function getStatusKey() { $statusMap = & $this->getStatusMap(); return $statusMap[$this->getData('status')]; } /** * @copydoc \PKP\core\DataObject::getDAO() */ public function getDAO(): DAO { return Repo::submission()->dao; } // // Abstract methods. // /** * Get section id. * * @return int */ abstract public function getSectionId(); /** * Get the value of a license field from the containing context. * * @param string $locale Locale code * @param int $field PERMISSIONS_FIELD_... * * @return string|null */ abstract public function _getContextLicenseFieldValue($locale, $field); // // Deprecated methods // /** * Get the localized copyright holder for the current publication * * @param string $preferredLocale Preferred locale code * * @return string|array<string,string> Localized copyright holder. * * @deprecated 3.2.0.0 */ public function getLocalizedCopyrightHolder($preferredLocale = null) { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('copyrightHolder', $preferredLocale); } /** * Get the context ID for the current publication * * @return int * * @deprecated 3.2.0.0 */ public function getContextId() { return $this->getData('contextId'); } /** * Set the context ID for the current publication * * @param int $contextId * * @deprecated 3.2.0.0 */ public function setContextId($contextId) { $this->setData('contextId', $contextId); } /** * Get the default/fall back locale the values should exist for */ public function getDefaultLocale(): ?string { return $this->getData('locale'); } /** * Get stored public ID of the submission. * * @param string $pubIdType @literal One of the NLM pub-id-type values or * 'other::something' if not part of the official NLM list * (see <http://dtd.nlm.nih.gov/publishing/tag-library/n-4zh0.html>). @endliteral * * @return string * * @deprecated 3.2.0.0 */ public function getStoredPubId($pubIdType) { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getStoredPubId($pubIdType); } /** * Set the stored public ID of the submission. * * @param string $pubIdType One of the NLM pub-id-type values or * 'other::something' if not part of the official NLM list * (see <http://dtd.nlm.nih.gov/publishing/tag-library/n-4zh0.html>). * @param string $pubId * * @deprecated 3.2.0.0 */ public function setStoredPubId($pubIdType, $pubId) { $publication = $this->getCurrentPublication(); if ($publication) { if ($pubIdType == 'doi') { $publication->setStoredPubId($pubIdType, $pubId); } else { $this->setData('pub-id::' . $pubIdType, $pubId); } } } /** * Get stored copyright holder for the submission. * * @param string $locale locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getCopyrightHolder($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('copyrightHolder', $locale); } /** * Set the stored copyright holder for the submission. * * @param string $copyrightHolder Copyright holder * @param string $locale locale * * @deprecated 3.2.0.0 */ public function setCopyrightHolder($copyrightHolder, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('copyrightHolder', $copyrightHolder, $locale); } } /** * Get stored copyright year for the submission. * * @return string * * @deprecated 3.2.0.0 */ public function getCopyrightYear() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('copyrightYear'); } /** * Set the stored copyright year for the submission. * * @param string $copyrightYear Copyright holder * * @deprecated 3.2.0.0 */ public function setCopyrightYear($copyrightYear) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('copyrightYear', $copyrightYear); } } /** * Get stored license URL for the submission content. * * @return string * * @deprecated 3.2.0.0 */ public function getLicenseURL() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('licenseUrl'); } /** * Set the stored license URL for the submission content. * * @deprecated 3.2.0.0 */ public function setLicenseURL($licenseURL) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('licenseUrl', $licenseURL); } } /** * Set option selection indicating if author should be hidden in issue ToC. * * @param int $hideAuthor AUTHOR_TOC_... * * @deprecated 3.2.0.0 */ public function setHideAuthor($hideAuthor) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('hideAuthor', $hideAuthor); } } /** * Get the locale of the submission. * * @return string * * @deprecated 3.2.0.0 */ public function getLocale() { return $this->getData('locale'); } /** * Set the locale of the submission. * * @param string $locale * * @deprecated 3.2.0.0 */ public function setLocale($locale) { $this->setData('locale', $locale); } /** * Get "localized" submission title (if applicable). * * @param string $preferredLocale * @param bool $includePrefix * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedTitle($preferredLocale = null, $includePrefix = true) { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedTitle($preferredLocale); } /** * Get title. * * @param string $locale * @param bool $includePrefix * * @return string|array * * @deprecated 3.2.0.0 */ public function getTitle($locale, $includePrefix = true) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } if ($includePrefix) { if (is_null($locale)) { return $publication->getTitles(); } return $publication->getLocalizedTitle($locale); } return $publication->getData('title'); } /** * Set title. * * @param string $title * @param string $locale * * @deprecated 3.2.0.0 */ public function setTitle($title, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('title', $title, $locale); } } /** * Get the localized version of the subtitle * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedSubtitle() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('subtitle'); } /** * Get the subtitle for a given locale * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getSubtitle($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('subtitle', $locale); } /** * Set the subtitle for a locale * * @param string $subtitle * @param string $locale * * @deprecated 3.2.0.0 */ public function setSubtitle($subtitle, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $this->setData('subtitle', $subtitle, $locale); } } /** * Get the submission full title (with prefix, title * and subtitle). * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedFullTitle() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedFullTitle(); } /** * Get the submission full title (with prefix, title * and subtitle). * * @param string $locale Locale to fetch data in. * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getFullTitle($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } if ($locale) { return $publication->getLocalizedFullTitle($locale); } return $publication->getFullTitles(); } /** * Get "localized" submission prefix (if applicable). * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedPrefix() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('prefix'); } /** * Get prefix. * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getPrefix($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('prefix', $locale); } /** * Set prefix. * * @param string $prefix * @param string $locale * * @deprecated 3.2.0.0 */ public function setPrefix($prefix, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('prefix', $prefix, $locale); } } /** * Get "localized" submission abstract (if applicable). * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedAbstract() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('abstract'); } /** * Get abstract. * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getAbstract($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('abstract', $locale); } /** * Set abstract. * * @param string $abstract * @param string $locale * * @deprecated 3.2.0.0 */ public function setAbstract($abstract, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('abstract', $abstract, $locale); } } /** * Return the localized discipline * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedDiscipline() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('discipline'); } /** * Get discipline * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getDiscipline($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('discipline', $locale); } /** * Set discipline * * @param string $discipline * @param string $locale * * @deprecated 3.2.0.0 */ public function setDiscipline($discipline, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('discipline', $discipline, $locale); } } /** * Return the localized subject * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedSubject() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('subject'); } /** * Get subject. * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getSubject($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('subjects', $locale); } /** * Set subject. * * @param string $subject * @param string $locale * * @deprecated 3.2.0.0 */ public function setSubject($subject, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('subjects', $subject, $locale); } } /** * Return the localized coverage * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedCoverage() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('coverage'); } /** * Get coverage. * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getCoverage($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('coverage', $locale); } /** * Set coverage. * * @param string $coverage * @param string $locale * * @deprecated 3.2.0.0 */ public function setCoverage($coverage, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('coverage', $coverage, $locale); } } /** * Return the localized type (method/approach) * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedType() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('type'); } /** * Get type (method/approach). * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getType($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('type', $locale); } /** * Set type (method/approach). * * @param string $type * @param string $locale * * @deprecated 3.2.0.0 */ public function setType($type, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('type', $type, $locale); } } /** * Get rights. * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getRights($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('rights', $locale); } /** * Set rights. * * @param string $rights * @param string $locale * * @deprecated 3.2.0.0 */ public function setRights($rights, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('rights', $rights, $locale); } } /** * Get source. * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getSource($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('source', $locale); } /** * Set source. * * @param string $source * @param string $locale * * @deprecated 3.2.0.0 */ public function setSource($source, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('source', $source, $locale); } } /** * Get language. * * @return string * * @deprecated 3.2.0.0 */ public function getLanguage() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('languages'); } /** * Set language. * * @param string $language * * @deprecated 3.2.0.0 */ public function setLanguage($language) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('languages', $language); } } /** * Return the localized sponsor * * @return string * * @deprecated 3.2.0.0 */ public function getLocalizedSponsor() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getLocalizedData('sponsor'); } /** * Get sponsor. * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getSponsor($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('sponsor', $locale); } /** * Set sponsor. * * @param string $sponsor * @param string $locale * * @deprecated 3.2.0.0 */ public function setSponsor($sponsor, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('sponsor', $sponsor, $locale); } } /** * Get the copyright notice for a given locale * * @param string $locale * * @return string|array<string,string> * * @deprecated 3.2.0.0 */ public function getCopyrightNotice($locale) { $publication = $this->getCurrentPublication(); if (!$publication) { return $locale ? '' : []; } return $publication->getData('copyrightNotice', $locale); } /** * Set the copyright notice for a locale * * @param string $copyrightNotice * @param string $locale * * @deprecated 3.2.0.0 */ public function setCopyrightNotice($copyrightNotice, $locale) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('copyrightNotice', $copyrightNotice, $locale); } } /** * Get citations. * * @return string * * @deprecated 3.2.0.0 */ public function getCitations() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('citationsRaw'); } /** * Set citations. * * @param string $citations * * @deprecated 3.2.0.0 */ public function setCitations($citations) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('citationsRaw', $citations); } } /** * Get submission date. * * @return string * * @deprecated 3.2.0.0 */ public function getDateSubmitted() { return $this->getData('dateSubmitted'); } /** * Set submission date. * * @param string $dateSubmitted * * @deprecated 3.2.0.0 */ public function setDateSubmitted($dateSubmitted) { $this->setData('dateSubmitted', $dateSubmitted); } /** * Get the date of the last status modification. * * @return string * * @deprecated 3.2.0.0 */ public function getDateStatusModified() { return $this->getData('dateLastActivity'); } /** * Set the date of the last status modification. * * @param string $dateModified * * @deprecated 3.2.0.0 */ public function setDateStatusModified($dateModified) { $this->setData('dateLastActivity', $dateModified); } /** * Get the date of the last modification. * * @return string * * @deprecated 3.2.0.0 */ public function getLastModified() { return $this->getData('lastModified'); } /** * Set the date of the last modification. * * @param string $dateModified * * @deprecated 3.2.0.0 */ public function setLastModified($dateModified) { $this->setData('lastModified', $dateModified); } /** * Get submission status. * * @return int * * @deprecated 3.2.0.0 */ public function getStatus() { return $this->getData('status'); } /** * Set submission status. * * @param int $status * * @deprecated 3.2.0.0 */ public function setStatus($status) { $this->setData('status', $status); } /** * Get submission progress (most recently completed submission step). * * @return int * * @deprecated 3.2.0.0 */ public function getSubmissionProgress() { return $this->getData('submissionProgress'); } /** * Set submission progress. * * @param int $submissionProgress * * @deprecated 3.2.0.0 */ public function setSubmissionProgress($submissionProgress) { $this->setData('submissionProgress', $submissionProgress); } /** * get pages * * @return string * * @deprecated 3.2.0.0 */ public function getPages() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('pages'); } /** * Get starting page of a submission. Note the return type of string - this is not to be used for page counting. * * @return string * * @deprecated 3.2.0.0 */ public function getStartingPage() { $publication = $this->getCurrentPublication(); return $publication ? $publication->getStartingPage() : ''; } /** * Get ending page of a submission. Note the return type of string - this is not to be used for page counting. * * @return string * * @deprecated 3.2.0.0 */ public function getEndingPage() { $publication = $this->getCurrentPublication(); return $publication ? $publication->getEndingPage() : ''; } /** * get pages as a nested array of page ranges * for example, pages of "pp. ii-ix, 9,15-18,a2,b2-b6" will return array( array(0 => 'ii', 1, => 'ix'), array(0 => '9'), array(0 => '15', 1 => '18'), array(0 => 'a2'), array(0 => 'b2', 1 => 'b6') ) * * @return array * * @deprecated 3.2.0.0 */ public function getPageArray() { $publication = $this->getCurrentPublication(); return $publication ? $publication->getPageArray() : ''; } /** * set pages * * @param string $pages * * @deprecated 3.2.0.0 */ public function setPages($pages) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('pages', $pages); } } /** * Get the submission's current publication stage ID * * @return int * * @deprecated 3.2.0.0 */ public function getStageId() { return $this->getData('stageId'); } /** * Set the submission's current publication stage ID * * @param int $stageId * * @deprecated 3.2.0.0 */ public function setStageId($stageId) { $this->setData('stageId', $stageId); } /** * Get date published. * * @return string * * @deprecated 3.2.0.0 */ public function getDatePublished() { $publication = $this->getCurrentPublication(); if (!$publication) { return ''; } return $publication->getData('datePublished'); } /** * Set date published. * * @param string $datePublished * * @deprecated 3.2.0.0 */ public function setDatePublished($datePublished) { $publication = $this->getCurrentPublication(); if ($publication) { $publication->setData('datePublished', $datePublished); } } /** * Determines whether or not the license for copyright on this submission is * a Creative Commons license or not. * * @return bool * * @deprecated 3.2.0.0 */ public function isCCLicense() { $publication = $this->getCurrentPublication(); return $publication && $publication->isCCLicense(); } /** * Get views of the submission. * * @deprecated 3.4 * * @return int */ public function getViews() { $filters = [ 'dateStart' => StatisticsHelper::STATISTICS_EARLIEST_DATE, 'dateEnd' => date('Y-m-d', strtotime('yesterday')), 'contextIds' => [$this->getData('contextId')], 'submissionIds' => [$this->getId()], 'assocTypes' => [Application::ASSOC_TYPE_SUBMISSION], ]; $metrics = Services::get('publicationStats') ->getQueryBuilder($filters) ->getSum([]) ->value('metric'); return $metrics ? $metrics : 0; } /** * Display the object in Import/Export results * * @return string A string that Identifies the object */ public function getUIDisplayString() { return __('plugins.importexport.submission.cli.display', ['submissionId' => $this->getId(), 'submissionTitle' => $this->getLocalizedTitle()]); } } // Expose global constants unless operating in strict mode. if (!PKP_STRICT_MODE) { foreach ([ 'STATUS_QUEUED', 'STATUS_PUBLISHED', 'STATUS_DECLINED', 'STATUS_SCHEDULED', 'PERMISSIONS_FIELD_LICENSE_URL', 'PERMISSIONS_FIELD_COPYRIGHT_HOLDER', 'PERMISSIONS_FIELD_COPYRIGHT_YEAR' ] as $constantName) { if (!defined($constantName)) { define($constantName, constant('\PKP\submission\PKPSubmission::' . $constantName)); } } }