| Server IP : 127.0.1.1 / Your IP : 216.73.216.60 Web Server : Apache/2.4.58 (Ubuntu) System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/public_html/lib/pkp/classes/submission/form/ |
Upload File : |
<?php
/**
* @file classes/submission/form/PKPSubmissionSubmitStep3Form.inc.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class PKPSubmissionSubmitStep3Form
* @ingroup submission_form
*
* @brief Form for Step 3 of author submission: submission metadata
*/
import('lib.pkp.classes.submission.form.SubmissionSubmitForm');
class PKPSubmissionSubmitStep3Form extends SubmissionSubmitForm {
/** @var SubmissionMetadataFormImplementation */
var $_metadataFormImplem;
/**
* Constructor.
* @param $context Context
* @param $submission Submission
* @param $metadataFormImplementation MetadataFormImplementation
*/
function __construct($context, $submission, $metadataFormImplementation) {
parent::__construct($context, $submission, 3);
$this->setDefaultFormLocale($submission->getLocale());
$this->_metadataFormImplem = $metadataFormImplementation;
$this->_metadataFormImplem->addChecks($submission);
}
/**
* @copydoc SubmissionSubmitForm::initData
*/
function initData() {
$this->_metadataFormImplem->initData($this->submission);
return parent::initData();
}
/**
* @copydoc SubmissionSubmitForm::fetch
*/
function fetch($request, $template = null, $display = false) {
$templateMgr = TemplateManager::getManager($request);
$context = $request->getContext();
// Tell the form what fields are enabled (and which of those are required)
$metadataFields = Application::getMetadataFields();
$urlTemplate = $request->getDispatcher()->url($request, ROUTE_API, $context->getData('urlPath'), 'vocabs', null, null, ['vocab' => '__vocab__']);
$controlledVocabMap = [
'languages' => CONTROLLED_VOCAB_SUBMISSION_LANGUAGE,
'subjects' => CONTROLLED_VOCAB_SUBMISSION_SUBJECT,
'disciplines' => CONTROLLED_VOCAB_SUBMISSION_DISCIPLINE,
'keywords' => CONTROLLED_VOCAB_SUBMISSION_KEYWORD,
'agencies' => CONTROLLED_VOCAB_SUBMISSION_AGENCY
];
foreach ($metadataFields as $field) {
$templateMgr->assign(array(
$field . 'Enabled' => $context->getData($field) === METADATA_REQUEST || $context->getData($field) === METADATA_REQUIRE,
$field . 'Required' => $context->getData($field) === METADATA_REQUIRE,
$field . 'SourceUrl' => isset($controlledVocabMap[$field]) ? str_replace('__vocab__', $controlledVocabMap[$field], $urlTemplate) : null
));
}
$templateMgr->assign([
'publicationId' => $this->submission->getCurrentPublication()->getId(),
'primaryLocale' => $this->submission->getLocale(),
]);
return parent::fetch($request, $template, $display);
}
/**
* Assign form data to user-submitted data.
*/
function readInputData() {
$this->_metadataFormImplem->readInputData();
}
/**
* Get the names of fields for which data should be localized
* @return array
*/
function getLocaleFieldNames() {
return $this->_metadataFormImplem->getLocaleFieldNames();
}
/**
* Save changes to submission.
* @return int the submission ID
*/
function execute(...$functionArgs) {
// Execute submission metadata related operations.
$this->_metadataFormImplem->execute($this->submission, Application::get()->getRequest());
// Get an updated version of the submission.
$submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
$this->submission = $submissionDao->getById($this->submissionId);
// Set other submission data.
if ($this->submission->getSubmissionProgress() <= $this->step) {
$this->submission->setSubmissionProgress($this->step + 1);
$this->submission->stampLastActivity();
$this->submission->stampModified();
}
parent::execute(...$functionArgs);
// Save the submission.
$submissionDao->updateObject($this->submission);
return $this->submissionId;
}
}