Open Monograph Press  3.3.0
PublicationFormatForm.inc.php
1 <?php
2 
16 import('lib.pkp.classes.form.Form');
17 
18 class PublicationFormatForm extends Form {
21 
24 
26  var $_publication = null;
27 
31  function __construct($monograph, $publicationFormat, $publication) {
32  parent::__construct('controllers/grid/catalogEntry/form/formatForm.tpl');
33  $this->setMonograph($monograph);
34  $this->setPublicationFormat($publicationFormat);
35  $this->setPublication($publication);
36 
37  // Validation checks for this form
38  $this->addCheck(new FormValidator($this, 'name', 'required', 'grid.catalogEntry.nameRequired'));
39  $this->addCheck(new FormValidator($this, 'entryKey', 'required', 'grid.catalogEntry.publicationFormatRequired'));
40  $this->addCheck(new FormValidatorRegExp($this, 'urlPath', 'optional', 'validator.alpha_dash', '/^[-_a-z0-9]*$/'));
41  $this->addCheck(new FormValidatorPost($this));
42  $this->addCheck(new FormValidatorCSRF($this));
43  }
44 
45  //
46  // Getters and Setters
47  //
52  function getPublicationFormat() {
54  }
55 
60  function setPublicationFormat($publicationFormat) {
61  $this->_publicationFormat = $publicationFormat;
62  }
63 
68  function getMonograph() {
69  return $this->_monograph;
70  }
71 
76  function setMonograph($monograph) {
77  $this->_monograph = $monograph;
78  }
79 
80 
85  function getPublication() {
86  return $this->_publication;
87  }
88 
93  function setPublication($publication) {
94  $this->_publication = $publication;
95  }
96 
97 
98  //
99  // Overridden template methods
100  //
104  function initData() {
105  $format = $this->getPublicationFormat();
106 
107  if ($format) {
108  $this->_data = array(
109  'entryKey' => $format->getEntryKey(),
110  'name' => $format->getName(null),
111  'isPhysicalFormat' => $format->getPhysicalFormat()?true:false,
112  'remoteURL' => $format->getRemoteURL(),
113  'urlPath' => $format->getData('urlPath'),
114  );
115  } else {
116  $this->setData('entryKey', 'DA');
117  }
118  }
119 
123  function fetch($request, $template = null, $display = false) {
124  $templateMgr = TemplateManager::getManager($request);
125  $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
126  $templateMgr->assign('entryKeys', $onixCodelistItemDao->getCodes('List7')); // List7 is for object formats
127 
128  $monograph = $this->getMonograph();
129  $templateMgr->assign('submissionId', $monograph->getId());
130  $publicationFormat = $this->getPublicationFormat();
131  if ($publicationFormat != null) {
132  $templateMgr->assign('representationId', $publicationFormat->getId());
133  }
134  $templateMgr->assign('publicationId', $this->getPublication()->getId());
135  return parent::fetch($request, $template, $display);
136  }
137 
142  function readInputData() {
143  $this->readUserVars(array(
144  'name',
145  'entryKey',
146  'isPhysicalFormat',
147  'remoteURL',
148  'urlPath',
149  ));
150  }
151 
157  function execute(...$functionParams) {
158  parent::execute(...$functionParams);
159 
160  $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
161  $publicationFormat = $this->getPublicationFormat();
162  if (!$publicationFormat) {
163  // this is a new format to this published submission
164  $publicationFormat = $publicationFormatDao->newDataObject();
165  $publicationFormat->setData('publicationId', $this->getPublication()->getId());
166  $existingFormat = false;
167  } else {
168  $existingFormat = true;
169  if ($this->getPublication()->getId() != $publicationFormat->getData('publicationId')) {
170  throw new Exception('Invalid publication format');
171  }
172  }
173 
174  $publicationFormat->setName($this->getData('name'));
175  $publicationFormat->setEntryKey($this->getData('entryKey'));
176  $publicationFormat->setPhysicalFormat($this->getData('isPhysicalFormat')?true:false);
177  $publicationFormat->setRemoteURL($this->getData('remoteURL'));
178  $publicationFormat->setData('urlPath', $this->getData('urlPath'));
179 
180  if ($existingFormat) {
181  $publicationFormatDao->updateObject($publicationFormat);
182  $representationId = $publicationFormat->getId();
183  } else {
184  $representationId = $publicationFormatDao->insertObject($publicationFormat);
185  // log the creation of the format.
186  import('lib.pkp.classes.log.SubmissionLog');
187  import('classes.log.SubmissionEventLogEntry');
188  SubmissionLog::logEvent(Application::get()->getRequest(), $this->getMonograph(), SUBMISSION_LOG_PUBLICATION_FORMAT_CREATE, 'submission.event.publicationFormatCreated', array('formatName' => $publicationFormat->getLocalizedName()));
189  }
190 
191  return $representationId;
192  }
193 }
194 
195 
PublicationFormatForm\$_publicationFormat
$_publicationFormat
Definition: PublicationFormatForm.inc.php:23
PublicationFormatForm\__construct
__construct($monograph, $publicationFormat, $publication)
Definition: PublicationFormatForm.inc.php:34
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PublicationFormatForm\readInputData
readInputData()
Definition: PublicationFormatForm.inc.php:145
PublicationFormatForm\$_monograph
$_monograph
Definition: PublicationFormatForm.inc.php:20
Form\setData
setData($key, $value=null)
Definition: Form.inc.php:229
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
FormValidatorPost
Form validation check to make sure the form is POSTed.
Definition: FormValidatorPost.inc.php:18
Http\Client\Exception\getRequest
getRequest()
Definition: RequestAwareTrait.php:25
SubmissionLog\logEvent
static logEvent($request, $submission, $eventType, $messageKey, $params=array())
Definition: SubmissionLog.inc.php:34
PublicationFormatForm\execute
execute(... $functionParams)
Definition: PublicationFormatForm.inc.php:160
PublicationFormatForm\$_publication
$_publication
Definition: PublicationFormatForm.inc.php:29
PublicationFormatForm\setPublication
setPublication($publication)
Definition: PublicationFormatForm.inc.php:96
PublicationFormatForm\initData
initData()
Definition: PublicationFormatForm.inc.php:107
PublicationFormatForm\getMonograph
getMonograph()
Definition: PublicationFormatForm.inc.php:71
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
PublicationFormatForm\fetch
fetch($request, $template=null, $display=false)
Definition: PublicationFormatForm.inc.php:126
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
PublicationFormatForm\getPublication
getPublication()
Definition: PublicationFormatForm.inc.php:88
FormValidatorRegExp
Form validation check using a regular expression.
Definition: FormValidatorRegExp.inc.php:18
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
FormValidatorCSRF
Form validation check to make sure the CSRF token is correct.
Definition: FormValidatorCSRF.inc.php:18
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
PublicationFormatForm\getPublicationFormat
getPublicationFormat()
Definition: PublicationFormatForm.inc.php:55
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
PublicationFormatForm
Form for adding/editing a format.
Definition: PublicationFormatForm.inc.php:18
PublicationFormatForm\setMonograph
setMonograph($monograph)
Definition: PublicationFormatForm.inc.php:79
PublicationFormatForm\setPublicationFormat
setPublicationFormat($publicationFormat)
Definition: PublicationFormatForm.inc.php:63