| Server IP : 195.134.90.114 / Your IP : 216.73.216.191 Web Server : Apache/2.4.58 System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 User : www-data ( 33) 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/controllers/grid/settings/sections/form/ |
Upload File : |
<?php
/**
* @file controllers/grid/settings/sections/form/PKPSectionForm.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 PKPSectionForm
* @ingroup controllers_grid_settings_section_form
*
* @brief Form for adding/editing a section
*/
import('lib.pkp.classes.form.Form');
class PKPSectionForm extends Form {
/** the id for the section being edited **/
var $_sectionId;
/** @var int The current user ID */
var $_userId;
/** @var string Cover image extension */
var $_imageExtension;
/** @var array Cover image information from getimagesize */
var $_sizeArray;
/**
* Constructor.
* @param $request PKPRequest
* @param $template string Template path
* @param $sectionId int optional
*/
function __construct($request, $template, $sectionId = null) {
$this->setSectionId($sectionId);
$user = $request->getUser();
$this->_userId = $user->getId();
parent::__construct($template);
// Validation checks for this form
$this->addCheck(new FormValidatorPost($this));
$this->addCheck(new FormValidatorCSRF($this));
AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_PKP_MANAGER);
}
/**
* @copydoc Form::readInputData()
*/
function readInputData() {
$this->readUserVars(array('title', 'subEditors'));
}
/**
* Get the section ID for this section.
* @return int
*/
function getSectionId() {
return $this->_sectionId;
}
/**
* Set the section ID for this section.
* @param $sectionId int
*/
function setSectionId($sectionId) {
$this->_sectionId = $sectionId;
}
/**
* @copydoc Form::fetch()
*/
function fetch($request, $template = null, $display = false) {
$params = [
'contextId' => $request->getContext()->getId(),
'roleIds' => ROLE_ID_SUB_EDITOR,
];
$usersIterator = Services::get('user')->getMany($params);
$subeditors = [];
foreach ($usersIterator as $user) {
$subeditors[(int) $user->getId()] = $user->getFullName();
}
$templateMgr = TemplateManager::getManager($request);
$templateMgr->assign([
'subeditors' => $subeditors,
]);
return parent::fetch($request, $template, $display);
}
/**
* Save changes to subeditors
*
* @param $contextId int
*/
public function execute(...$functionArgs) {
$contextId = Application::get()->getRequest()->getContext()->getId();
$subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /* @var $subEditorsDao SubEditorsDAO */
$subEditorsDao->deleteBySubmissionGroupId($this->getSectionId(), ASSOC_TYPE_SECTION, $contextId);
$subEditors = $this->getData('subEditors');
if (!empty($subEditors)) {
$roleDao = DAORegistry::getDAO('RoleDAO'); /* @var $roleDao RoleDAO */
foreach ($subEditors as $subEditor) {
if ($roleDao->userHasRole($contextId, $subEditor, ROLE_ID_SUB_EDITOR)) {
$subEditorsDao->insertEditor($contextId, $this->getSectionId(), $subEditor, ASSOC_TYPE_SECTION);
}
}
}
parent::execute($functionArgs);
}
}