Server : Apache/2.4.41 (Ubuntu) System : Linux journalup 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/classes/submission/form/ |
<?php /** * @file classes/submission/form/SubmissionSubmitStep1Form.inc.php * * Copyright (c) 2014-2020 Simon Fraser University * Copyright (c) 2003-2020 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class SubmissionSubmitStep1Form * @ingroup submission_form * * @brief Form for Step 1 of author submission. */ import('lib.pkp.classes.submission.form.PKPSubmissionSubmitStep1Form'); class SubmissionSubmitStep1Form extends PKPSubmissionSubmitStep1Form { /** * Constructor. */ function __construct($context, $submission = null) { parent::__construct($context, $submission); $this->addCheck(new FormValidatorCustom($this, 'sectionId', 'required', 'author.submit.form.sectionRequired', array(DAORegistry::getDAO('SectionDAO'), 'sectionExists'), array($context->getId()))); } /** * @copydoc SubmissionSubmitForm::fetch */ function fetch($request, $template = null, $display = false) { $roleDao = DAORegistry::getDAO('RoleDAO'); /* @var $roleDao RoleDAO */ $user = $request->getUser(); $canSubmitAll = $roleDao->userHasRole($this->context->getId(), $user->getId(), ROLE_ID_MANAGER) || $roleDao->userHasRole($this->context->getId(), $user->getId(), ROLE_ID_SUB_EDITOR); // Get section options for this context $sectionDao = DAORegistry::getDAO('SectionDAO'); /* @var $sectionDao SectionDAO */ $sectionOptions = array('0' => '') + $sectionDao->getTitlesByContextId($this->context->getId(), !$canSubmitAll); $templateMgr = TemplateManager::getManager($request); $templateMgr->assign('sectionOptions', $sectionOptions); $templateMgr->assign('sectionId', $request->getUserVar('sectionId')); // Get section policies for this context $sectionPolicies = array(); foreach ($sectionOptions as $sectionId => $sectionTitle) { $section = $sectionDao->getById($sectionId); $sectionPolicy = $section ? $section->getLocalizedPolicy() : null; if ($this->doesSectionPolicyContainAnyText($sectionPolicy)) $sectionPolicies[$sectionId] = $sectionPolicy; } $templateMgr->assign('sectionPolicies', $sectionPolicies); return parent::fetch($request, $template, $display); } /** * Checks whether a section policy contains any text (plain / readable). */ private function doesSectionPolicyContainAnyText($sectionPolicy) { $sectionPolicyPlainText = trim(PKPString::html2text($sectionPolicy)); return strlen($sectionPolicyPlainText) > 0; } /** * @copydoc PKPSubmissionSubmitStep1Form::initData */ function initData($data = array()) { if (isset($this->submission)) { parent::initData(array( 'sectionId' => $this->submission->getCurrentPublication()->getData('sectionId'), )); } else { parent::initData(); } } /** * Assign form data to user-submitted data. */ function readInputData() { $this->readUserVars(array( 'sectionId', )); parent::readInputData(); } /** * Perform additional validation checks * @copydoc Form::validate */ function validate($callHooks = true) { if (!parent::validate($callHooks)) return false; // Validate that the section ID is attached to this journal. $request = Application::get()->getRequest(); $context = $request->getContext(); $sectionDao = DAORegistry::getDAO('SectionDAO'); /* @var $sectionDao SectionDAO */ $section = $sectionDao->getById($this->getData('sectionId'), $context->getId()); if (!$section) return false; return true; } /** * Set the publication data from the form. * @param Publication $publication * @param Submission $submission */ function setPublicationData($publication, $submission) { $publication->setData('sectionId', $this->getData('sectionId')); parent::setPublicationData($publication, $submission); } }