forked from GNUsocial/gnu-social
add some more fields to site admin panel
This commit is contained in:
parent
d0466da80b
commit
2f770cecf9
@ -90,18 +90,52 @@ class SiteadminpanelAction extends AdminPanelAction
|
|||||||
|
|
||||||
function saveSettings()
|
function saveSettings()
|
||||||
{
|
{
|
||||||
$name = $this->trimmed('name');
|
static $settings = array('name', 'broughtby', 'broughtbyurl', 'email');
|
||||||
|
|
||||||
|
$values = array();
|
||||||
|
|
||||||
|
foreach ($settings as $setting) {
|
||||||
|
$values[$setting] = $this->trimmed($setting);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This throws an exception on validation errors
|
||||||
|
|
||||||
|
$this->validate($values);
|
||||||
|
|
||||||
|
// assert(all values are valid);
|
||||||
|
|
||||||
$config = new Config();
|
$config = new Config();
|
||||||
|
|
||||||
$config->query('BEGIN');
|
$config->query('BEGIN');
|
||||||
|
|
||||||
Config::save('site', 'name', $name);
|
foreach ($settings as $setting) {
|
||||||
|
Config::save('site', $setting, $values['setting']);
|
||||||
|
}
|
||||||
|
|
||||||
$config->query('COMMIT');
|
$config->query('COMMIT');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validate(&$values)
|
||||||
|
{
|
||||||
|
// Validate site name
|
||||||
|
|
||||||
|
if (empty($values['name'])) {
|
||||||
|
$this->clientError(_("Site name must have non-zero length."));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate email
|
||||||
|
|
||||||
|
$values['email'] = common_canonical_email($values['email']);
|
||||||
|
|
||||||
|
if (empty($values['email'])) {
|
||||||
|
$this->clientError(_('You must have a valid contact email address'));
|
||||||
|
}
|
||||||
|
if (!Validate::email($values['email'], common_config('email', 'check_domain'))) {
|
||||||
|
$this->clientError(_('Not a valid email address'));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SiteAdminPanelForm extends Form
|
class SiteAdminPanelForm extends Form
|
||||||
@ -147,10 +181,34 @@ class SiteAdminPanelForm extends Form
|
|||||||
|
|
||||||
function formData()
|
function formData()
|
||||||
{
|
{
|
||||||
$this->out->input('name', _('Site name'),
|
$this->input('name', _('Site name'),
|
||||||
($this->out->arg('name')) ? $this->out->arg('name') :
|
_('The name of your site, like "Yourcompany Microblog"'));
|
||||||
common_config('site', 'name'),
|
$this->input('broughtby', _('Brought by'),
|
||||||
_('The name of your site, like "Yourcompany Microblog"'));
|
_('Text used for credits link in footer of each page'));
|
||||||
|
$this->input('broughtbyurl', _('Brought by URL'),
|
||||||
|
_('URL used for credits link in footer of each page'));
|
||||||
|
$this->input('email', _('Email'),
|
||||||
|
_('contact email address for your site'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility to simplify some of the duplicated code around
|
||||||
|
* params and settings.
|
||||||
|
*
|
||||||
|
* @param string $setting Name of the setting
|
||||||
|
* @param string $title Title to use for the input
|
||||||
|
* @param string $instructions Instructions for this field
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function input($setting, $title, $instructions)
|
||||||
|
{
|
||||||
|
$value = $this->out->trimmed($setting);
|
||||||
|
if (empty($value)) {
|
||||||
|
$value = common_config('site', $setting);
|
||||||
|
}
|
||||||
|
$this->out->input($setting, $title, $value, $instructions);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user