88 lines
2.8 KiB
PHP
88 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* @file classes/components/form/site/PKPSiteConfigForm.php
|
|
*
|
|
* Copyright (c) 2014-2021 Simon Fraser University
|
|
* Copyright (c) 2000-2021 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class PKPSiteConfigForm
|
|
*
|
|
* @ingroup classes_controllers_form
|
|
*
|
|
* @brief A preset form for the site config settings.
|
|
*/
|
|
|
|
namespace PKP\components\forms\site;
|
|
|
|
use APP\core\Services;
|
|
use PKP\components\forms\FieldOptions;
|
|
use PKP\components\forms\FieldSelect;
|
|
use PKP\components\forms\FieldText;
|
|
use PKP\components\forms\FormComponent;
|
|
|
|
define('FORM_SITE_CONFIG', 'siteConfig');
|
|
|
|
class PKPSiteConfigForm extends FormComponent
|
|
{
|
|
/** @copydoc FormComponent::$id */
|
|
public $id = FORM_SITE_CONFIG;
|
|
|
|
/** @copydoc FormComponent::$method */
|
|
public $method = 'PUT';
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @param string $action URL to submit the form to
|
|
* @param array $locales Supported locales
|
|
* @param \PKP\site\Site $site
|
|
*/
|
|
public function __construct($action, $locales, $site)
|
|
{
|
|
$this->action = $action;
|
|
$this->locales = $locales;
|
|
|
|
$contextsIterator = Services::get('context')->getMany(['isEnabled' => true]);
|
|
|
|
$this->addField(new FieldText('title', [
|
|
'label' => __('admin.settings.siteTitle'),
|
|
'isRequired' => true,
|
|
'isMultilingual' => true,
|
|
'value' => $site->getData('title'),
|
|
]));
|
|
|
|
$options = [['value' => '', 'label' => '']];
|
|
foreach ($contextsIterator as $context) {
|
|
$options[] = [
|
|
'value' => $context->getId(),
|
|
'label' => htmlspecialchars($context->getLocalizedData('name')),
|
|
];
|
|
}
|
|
if (count($options) > 1) {
|
|
$this->addField(new FieldSelect('redirect', [
|
|
'label' => __('admin.settings.redirect'),
|
|
'description' => __('admin.settings.redirectInstructions'),
|
|
'options' => $options,
|
|
'value' => $site->getData('redirect'),
|
|
]));
|
|
}
|
|
|
|
$this->addField(new FieldText('minPasswordLength', [
|
|
'label' => __('admin.settings.minPasswordLength'),
|
|
'isRequired' => true,
|
|
'size' => 'small',
|
|
'value' => $site->getData('minPasswordLength'),
|
|
]));
|
|
|
|
$this->addField(new FieldOptions('disableSharedReviewerStatistics', [
|
|
'label' => __('admin.settings.sharedReviewerStatistics'),
|
|
'description' => __('admin.settings.sharedReviewerStatistics.description'),
|
|
'options' => [
|
|
['value' => true, 'label' => __('admin.settings.sharedReviewerStatistics.disable')]
|
|
],
|
|
'value' => (bool) $site->getData('disableSharedReviewerStatistics'),
|
|
]));
|
|
}
|
|
}
|