Open Monograph Press  3.3.0
Submission.inc.php
1 <?php
2 
21 define('WORK_TYPE_EDITED_VOLUME', 1);
22 define('WORK_TYPE_AUTHORED_WORK', 2);
23 
24 import('lib.pkp.classes.submission.PKPSubmission');
25 import('classes.monograph.Author');
26 
27 class Submission extends PKPSubmission {
33  function getPressId() {
34  return $this->getContextId();
35  }
36 
42  function setPressId($pressId) {
43  return $this->setContextId($pressId);
44  }
45 
51  function getSeriesId() {
52  return $this->getSectionId();
53  }
54 
59  function getSectionId() {
60  $publication = $this->getCurrentPublication();
61  if (!$publication) {
62  return 0;
63  }
64  return $publication->getData('seriesId');
65  }
66 
72  function setSeriesId($id) {
73  $publication = $this->getCurrentPublication();
74  if ($publication) {
75  $publication->setData('seriesId', $id);
76  }
77  }
78 
84  function getSeriesPosition() {
85  $publication = $this->getCurrentPublication();
86  if (!$publication) {
87  return '';
88  }
89  return $publication->getData('seriesPosition');
90  }
91 
97  function setSeriesPosition($seriesPosition) {
98  $publication = $this->getCurrentPublication();
99  if ($publication) {
100  $publication->setData('seriesPosition', $seriesPosition);
101  }
102  }
103 
109  function getWorkType() {
110  return $this->getData('workType');
111  }
112 
118  function setWorkType($workType) {
119  $this->setData('workType', $workType);
120  }
121 
128  $publication = $this->getCurrentPublication();
129  if (!$publication) {
130  return [];
131  }
132  return $publication->getLocalizedData('supportingAgencies');
133  }
134 
141  function getSupportingAgencies($locale) {
142  $publication = $this->getCurrentPublication();
143  if (!$publication) {
144  return [];
145  }
146  return $publication->getData('supportingAgencies', $locale);
147  }
148 
155  function setSupportingAgencies($supportingAgencies, $locale) {
156  $publication = $this->getCurrentPublication();
157  if ($publication) {
158  $publication->setData('seriesPosition', $supportingAgencies, $locale);
159  }
160  }
161 
169  function _getContextLicenseFieldValue($locale, $field, $publication = null) {
170  $context = Services::get('context')->get($this->getData('contextId'));
171  $fieldValue = null; // Scrutinizer
172  switch ($field) {
173  case PERMISSIONS_FIELD_LICENSE_URL:
174  $fieldValue = $context->getData('licenseUrl');
175  break;
176  case PERMISSIONS_FIELD_COPYRIGHT_HOLDER:
177  switch($context->getData('copyrightHolderType')) {
178  case 'author':
179  $fieldValue = array($context->getPrimaryLocale() => $this->getAuthorString());
180  break;
181  case 'context':
182  case null:
183  $fieldValue = $context->getName(null);
184  break;
185  default:
186  $fieldValue = $context->getData('copyrightHolderOther');
187  break;
188  }
189  break;
190  case PERMISSIONS_FIELD_COPYRIGHT_YEAR:
191  $fieldValue = date('Y');
192  if (!$publication) {
193  $publication = $this->getCurrentPublication();
194  }
195  if ($publication->getData('datePublished')) {
196  $fieldValue = date('Y', strtotime($publication->getData('datePublished')));
197  }
198  break;
199  default: assert(false);
200  }
201 
202  // Return the fetched license field
203  if ($locale === null) return $fieldValue;
204  if (isset($fieldValue[$locale])) return $fieldValue[$locale];
205  return null;
206  }
207 
213  function getCoverImage() {
214  $publication = $this->getCurrentPublication();
215  if (!$publication) {
216  return '';
217  }
218  return $publication->getData('coverImage');
219  }
220 
226  function getCoverImageAltText() {
227  $publication = $this->getCurrentPublication();
228  if (!$publication) {
229  return '';
230  }
231  $coverImage = $publication->getData('coverImage');
232  return empty($coverImage['altText']) ? '' : $coverImage['altText'];
233  }
234 
241  public function getAuthorOrEditorString($preferred = true) {
242 
243  if ($this->getWorkType() != WORK_TYPE_EDITED_VOLUME) {
244  $userGroupIds = array_map(function($author) {
245  return $author->getData('userGroupId');
246  }, $this->getAuthors(true));
247  $userGroups = array_map(function($userGroupId) {
248  return DAORegistry::getDAO('UserGroupDAO')->getbyId($userGroupId);
249  }, array_unique($userGroupIds));
250  return $this->getCurrentPublication()->getAuthorString($userGroups);
251  }
252 
253  return $this->getCurrentPublication()->getEditorString();
254  }
255 
261  return $this->getData('enableChapterPublicationDates');
262  }
263 
268  function setEnableChapterPublicationDates($enableChapterPublicationDates) {
269  $this->setData('enableChapterPublicationDates', $enableChapterPublicationDates);
270  }
271 
272 }
DataObject\getData
& getData($key, $locale=null)
Definition: DataObject.inc.php:100
PKPSubmission\getAuthors
getAuthors($onlyIncludeInBrowse=false)
Definition: PKPSubmission.inc.php:420
Submission\_getContextLicenseFieldValue
_getContextLicenseFieldValue($locale, $field, $publication=null)
Definition: Submission.inc.php:169
Submission\getEnableChapterPublicationDates
getEnableChapterPublicationDates()
Definition: Submission.inc.php:260
Submission\setEnableChapterPublicationDates
setEnableChapterPublicationDates($enableChapterPublicationDates)
Definition: Submission.inc.php:268
Submission\setPressId
setPressId($pressId)
Definition: Submission.inc.php:42
Submission
Class for a Submission.
Definition: Submission.inc.php:27
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKPSubmission
The Submission class implements the abstract data model of a scholarly submission.
Definition: PKPSubmission.inc.php:36
PKPSubmission\setContextId
setContextId($contextId)
Definition: PKPSubmission.inc.php:219
Submission\getWorkType
getWorkType()
Definition: Submission.inc.php:109
Submission\getCoverImageAltText
getCoverImageAltText()
Definition: Submission.inc.php:226
Submission\getSeriesPosition
getSeriesPosition()
Definition: Submission.inc.php:84
Submission\setSeriesId
setSeriesId($id)
Definition: Submission.inc.php:72
Submission\getSeriesId
getSeriesId()
Definition: Submission.inc.php:51
Submission\getAuthorOrEditorString
getAuthorOrEditorString($preferred=true)
Definition: Submission.inc.php:241
Submission\setSupportingAgencies
setSupportingAgencies($supportingAgencies, $locale)
Definition: Submission.inc.php:155
Submission\getSectionId
getSectionId()
Definition: Submission.inc.php:59
Submission\getCoverImage
getCoverImage()
Definition: Submission.inc.php:213
PKPSubmission\getCurrentPublication
getCurrentPublication()
Definition: PKPSubmission.inc.php:68
PKPSubmission\getContextId
getContextId()
Definition: PKPSubmission.inc.php:210
Submission\setSeriesPosition
setSeriesPosition($seriesPosition)
Definition: Submission.inc.php:97
Submission\setWorkType
setWorkType($workType)
Definition: Submission.inc.php:118
Submission\getPressId
getPressId()
Definition: Submission.inc.php:33
Submission\getSupportingAgencies
getSupportingAgencies($locale)
Definition: Submission.inc.php:141
DataObject\setData
setData($key, $value, $locale=null)
Definition: DataObject.inc.php:132
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49
Submission\getLocalizedSupportingAgencies
getLocalizedSupportingAgencies()
Definition: Submission.inc.php:127