addCheck(new \PKP\form\validation\FormValidatorPost($this)); $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this)); $this->_issue = $issue; } /** * @copydoc Form::fetch() * * @param null|mixed $template */ public function fetch($request, $template = null, $display = false) { $templateMgr = TemplateManager::getManager($request); $templateMgr->assign([ 'accessOptions' => [ Issue::ISSUE_ACCESS_OPEN => 'editor.issues.openAccess', Issue::ISSUE_ACCESS_SUBSCRIPTION => 'editor.issues.subscription', ], 'issueId' => $this->_issue->getId(), ]); return parent::fetch($request, $template, $display); } /** * Initialize form data from current issue. */ public function initData() { $this->_data = [ 'accessStatus' => $this->_issue->getAccessStatus(), 'openAccessDate' => $this->_issue->getOpenAccessDate(), ]; parent::initData(); } /** * Assign form data to user-submitted data. */ public function readInputData() { $this->readUserVars([ 'accessStatus', 'openAccessDate', ]); } /** * @copydoc Form::execute() * * @return int Issue ID for created/updated issue */ public function execute(...$functionArgs) { $this->_issue->setAccessStatus($this->getData('accessStatus') ? $this->getData('accessStatus') : Issue::ISSUE_ACCESS_OPEN); if ($openAccessDate = $this->getData('openAccessDate')) { $this->_issue->setOpenAccessDate($openAccessDate); } else { $this->_issue->setOpenAccessDate(null); } Hook::call('IssueAccessForm::execute', [$this, $this->_issue]); Repo::issue()->edit($this->_issue, []); parent::execute(...$functionArgs); } }