Open Journal Systems  3.3.0
SubmissionSubmitStep1Form.inc.php
1 <?php
2 
16 import('lib.pkp.classes.submission.form.PKPSubmissionSubmitStep1Form');
17 
22  function __construct($context, $submission = null) {
23  parent::__construct($context, $submission);
24  $this->addCheck(new FormValidatorCustom($this, 'sectionId', 'required', 'author.submit.form.sectionRequired', array(DAORegistry::getDAO('SectionDAO'), 'sectionExists'), array($context->getId())));
25  }
26 
30  function fetch($request, $template = null, $display = false) {
31  $roleDao = DAORegistry::getDAO('RoleDAO'); /* @var $roleDao RoleDAO */
32  $user = $request->getUser();
33  $canSubmitAll = $roleDao->userHasRole($this->context->getId(), $user->getId(), ROLE_ID_MANAGER) ||
34  $roleDao->userHasRole($this->context->getId(), $user->getId(), ROLE_ID_SUB_EDITOR);
35 
36  // Get section options for this context
37  $sectionDao = DAORegistry::getDAO('SectionDAO'); /* @var $sectionDao SectionDAO */
38  $sections = array();
39  $sectionsIterator = $sectionDao->getByContextId($this->context->getId(), null, !$canSubmitAll);
40  while ($section = $sectionsIterator->next()) {
41  if (!$section->getIsInactive()) {
42  $sections[$section->getId()] = $section->getLocalizedTitle();
43  }
44  }
45  $sectionOptions = array('0' => '') + $sections;
46 
47  $templateMgr = TemplateManager::getManager($request);
48  $templateMgr->assign('sectionOptions', $sectionOptions);
49  $templateMgr->assign('sectionId', $request->getUserVar('sectionId'));
50 
51  // Get section policies for this context
52  $sectionPolicies = array();
53  foreach ($sectionOptions as $sectionId => $sectionTitle) {
54  $section = $sectionDao->getById($sectionId);
55 
56  $sectionPolicy = $section ? $section->getLocalizedPolicy() : null;
57  if ($this->doesSectionPolicyContainAnyText($sectionPolicy))
58  $sectionPolicies[$sectionId] = $sectionPolicy;
59  }
60 
61  $templateMgr->assign('sectionPolicies', $sectionPolicies);
62 
63  return parent::fetch($request, $template, $display);
64  }
65 
69  private function doesSectionPolicyContainAnyText($sectionPolicy) {
70  $sectionPolicyPlainText = trim(PKPString::html2text($sectionPolicy));
71  return strlen($sectionPolicyPlainText) > 0;
72  }
73 
77  function initData($data = array()) {
78  if (isset($this->submission)) {
79  parent::initData(array(
80  'sectionId' => $this->submission->getCurrentPublication()->getData('sectionId'),
81  ));
82  } else {
83  parent::initData();
84  }
85  }
86 
90  function readInputData() {
91  $this->readUserVars(array(
92  'sectionId',
93  ));
94  parent::readInputData();
95  }
96 
101  function validate($callHooks = true) {
102  if (!parent::validate($callHooks)) return false;
103 
104  $request = Application::get()->getRequest();
105  $context = $request->getContext();
106  $sectionDao = DAORegistry::getDAO('SectionDAO'); /* @var $sectionDao SectionDAO */
107  $section = $sectionDao->getById($this->getData('sectionId'), $context->getId());
108 
109  // Validate that the section ID is attached to this journal.
110  if (!$section) return false;
111 
112  // Ensure that submissions are enabled and the assigned section is activated
113  if ($context->getData('disableSubmissions') || $section->getIsInactive()) {
114  return false;
115  }
116 
117  return true;
118  }
119 
125  function setPublicationData($publication, $submission) {
126  $publication->setData('sectionId', $this->getData('sectionId'));
127  parent::setPublicationData($publication, $submission);
128  }
129 }
130 
131 
SubmissionSubmitStep1Form\__construct
__construct($context, $submission=null)
Definition: SubmissionSubmitStep1Form.inc.php:22
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionSubmitStep1Form\setPublicationData
setPublicationData($publication, $submission)
Definition: SubmissionSubmitStep1Form.inc.php:125
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
PKPSubmissionSubmitStep1Form
Form for Step 1 of author submission: terms, conditions, etc.
Definition: PKPSubmissionSubmitStep1Form.inc.php:19
Form\getData
getData($key)
Definition: Form.inc.php:220
SubmissionSubmitForm\$context
$context
Definition: SubmissionSubmitForm.inc.php:26
PKPString\html2text
static html2text($html)
Definition: PKPString.inc.php:395
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
SubmissionSubmitStep1Form\validate
validate($callHooks=true)
Definition: SubmissionSubmitStep1Form.inc.php:101
SubmissionSubmitStep1Form\readInputData
readInputData()
Definition: SubmissionSubmitStep1Form.inc.php:90
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
SubmissionSubmitStep1Form\fetch
fetch($request, $template=null, $display=false)
Definition: SubmissionSubmitStep1Form.inc.php:30
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
SubmissionSubmitStep1Form\initData
initData($data=array())
Definition: SubmissionSubmitStep1Form.inc.php:77
FormValidatorCustom
Form validation check with a custom user function performing the validation check.
Definition: FormValidatorCustom.inc.php:18
SubmissionSubmitForm\$submission
$submission
Definition: SubmissionSubmitForm.inc.php:38
SubmissionSubmitStep1Form
Form for Step 1 of author submission.
Definition: SubmissionSubmitStep1Form.inc.php:18