add default timezone to site admin panel

This commit is contained in:
Evan Prodromou 2009-11-08 22:03:34 -05:00
parent 691beefd0f
commit 977d5d6f85
1 changed files with 35 additions and 2 deletions

View File

@ -90,7 +90,7 @@ class SiteadminpanelAction extends AdminPanelAction
function saveSettings()
{
static $settings = array('name', 'broughtby', 'broughtbyurl', 'email');
static $settings = array('name', 'broughtby', 'broughtbyurl', 'email', 'timezone');
$values = array();
@ -135,6 +135,14 @@ class SiteadminpanelAction extends AdminPanelAction
if (!Validate::email($values['email'], common_config('email', 'check_domain'))) {
$this->clientError(_('Not a valid email address'));
}
// Validate timezone
if (is_null($values['timezone']) ||
!in_array($values['timezone'], DateTimeZone::listIdentifiers())) {
$this->clientError(_('Timezone not selected.'));
return;
}
}
}
@ -189,6 +197,18 @@ class SiteAdminPanelForm extends Form
_('URL used for credits link in footer of each page'));
$this->input('email', _('Email'),
_('contact email address for your site'));
$timezones = array();
foreach (DateTimeZone::listIdentifiers() as $k => $v) {
$timezones[$v] = $v;
}
asort($timezones);
$this->out->dropdown('timezone', _('Default timezone'),
$timezones, _('Default timezone for the site; usually UTC.'),
true, $this->value('timezone'));
}
/**
@ -203,12 +223,25 @@ class SiteAdminPanelForm extends Form
*/
function input($setting, $title, $instructions)
{
$this->out->input($setting, $title, $this->value($setting), $instructions);
}
/**
* Utility to simplify getting the posted-or-stored setting value
*
* @param string $setting Name of the setting
*
* @return string param value if posted, or current config value
*/
function value($setting)
{
$value = $this->out->trimmed($setting);
if (empty($value)) {
$value = common_config('site', $setting);
}
$this->out->input($setting, $title, $value, $instructions);
return $value;
}
/**