| Server IP : 195.130.67.5 / Your IP : 216.73.217.154 Web Server : Microsoft-IIS/10.0 System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586 User : IUSR ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Old Sites/Libteiser - Ojs/ojs2/classes/manager/form/ |
Upload File : |
<?php
/**
* @file classes/manager/form/LanguageSettingsForm.inc.php
*
* Copyright (c) 2003-2009 John Willinsky
* Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
*
* @class LanguageSettingsForm
* @ingroup manager_form
*
* @brief Form for modifying journal language settings.
*/
// $Id: LanguageSettingsForm.inc.php,v 1.15.2.1 2009/04/08 19:42:48 asmecher Exp $
import('form.Form');
class LanguageSettingsForm extends Form {
/** @var array the setting names */
var $settings;
/** @var array set of locales available for journal use */
var $availableLocales;
/**
* Constructor.
*/
function LanguageSettingsForm() {
parent::Form('manager/languageSettings.tpl');
$this->settings = array(
'supportedLocales' => 'object'
);
$site = &Request::getSite();
$this->availableLocales = $site->getSupportedLocales();
$localeCheck = create_function('$locale,$availableLocales', 'return in_array($locale,$availableLocales);');
// Validation checks for this form
$this->addCheck(new FormValidator($this, 'primaryLocale', 'required', 'manager.languages.form.primaryLocaleRequired'), array('Locale', 'isLocaleValid'));
$this->addCheck(new FormValidator($this, 'primaryLocale', 'required', 'manager.languages.form.primaryLocaleRequired'), $localeCheck, array(&$this->availableLocales));
$this->addCheck(new FormValidatorPost($this));
}
/**
* Display the form.
*/
function display() {
$templateMgr = &TemplateManager::getManager();
$site = &Request::getSite();
$templateMgr->assign('availableLocales', $site->getSupportedLocaleNames());
$templateMgr->assign('helpTopicId','journal.managementPages.languages');
parent::display();
}
/**
* Initialize form data from current settings.
*/
function initData() {
$journal = &Request::getJournal();
foreach ($this->settings as $settingName => $settingType) {
$this->_data[$settingName] = $journal->getSetting($settingName);
}
$this->setData('primaryLocale', $journal->getPrimaryLocale());
if ($this->getData('supportedLocales') == null || !is_array($this->getData('supportedLocales'))) {
$this->setData('supportedLocales', array());
}
}
/**
* Assign form data to user-submitted data.
*/
function readInputData() {
$vars = array_keys($this->settings);
$vars[] = 'primaryLocale';
$this->readUserVars($vars);
if ($this->getData('supportedLocales') == null || !is_array($this->getData('supportedLocales'))) {
$this->setData('supportedLocales', array());
}
}
/**
* Save modified settings.
*/
function execute() {
$journal = &Request::getJournal();
$settingsDao = &DAORegistry::getDAO('JournalSettingsDAO');
// Verify additional locales
$supportedLocales = array();
foreach ($this->getData('supportedLocales') as $locale) {
if (Locale::isLocaleValid($locale) && in_array($locale, $this->availableLocales)) {
array_push($supportedLocales, $locale);
}
}
$primaryLocale = $this->getData('primaryLocale');
if ($primaryLocale != null && !empty($primaryLocale) && !in_array($primaryLocale, $supportedLocales)) {
array_push($supportedLocales, $primaryLocale);
}
$this->setData('supportedLocales', $supportedLocales);
foreach ($this->_data as $name => $value) {
if (!in_array($name, array_keys($this->settings))) continue;
$settingsDao->updateSetting(
$journal->getJournalId(),
$name,
$value,
$this->settings[$name]
);
}
$journalDao =& DAORegistry::getDAO('JournalDAO');
$journal->setPrimaryLocale($this->getData('primaryLocale'));
$journalDao->updateJournal($journal);
}
}
?>