refactor common behaviour in settings pages

darcs-hash:20080630170342-84dde-5d7feb88a0a707b24c8070802a7ec99dd1f35687.gz
This commit is contained in:
Evan Prodromou 2008-06-30 13:03:42 -04:00
parent 8336a7755e
commit c64f137497
8 changed files with 103 additions and 119 deletions

View File

@ -23,25 +23,18 @@ require_once(INSTALLDIR.'/lib/settingsaction.php');
class AvatarAction extends SettingsAction { class AvatarAction extends SettingsAction {
function show_top($arr) { function get_instructions() {
$msg = $arr[0]; return _t('Upload a new "avatar" (user image) here. ' .
$success = $arr[1];
if ($msg) {
$this->message($msg, $success);
} else {
common_element('div', 'instructions',
_t('Upload a new "avatar" (user image) here. ' .
'You can\'t edit the picture after you upload it, so ' . 'You can\'t edit the picture after you upload it, so ' .
'make sure it\'s more or less square. ' . 'make sure it\'s more or less square. ' .
'It must be under the site license, also. ' . 'It must be under the site license, also. ' .
'Use a picture that belongs to you and that you ' . 'Use a picture that belongs to you and that you ' .
'want to share.')); 'want to share.');
}
$this->settings_menu();
} }
function show_form($msg=NULL, $success=false) { function show_form($msg=NULL, $success=false) {
common_show_header(_t('Avatar'), NULL, array($msg, $success), array($this, 'show_top'));
$this->form_header(_t('Avatar'), $msg, $success);
$user = common_current_user(); $user = common_current_user();
$profile = $user->getProfile(); $profile = $user->getProfile();

View File

@ -32,10 +32,7 @@ class DocAction extends Action {
return; return;
} }
$c = file_get_contents($filename); $c = file_get_contents($filename);
$c = preg_replace('/%%action.(\w+)%%/e', "common_local_url('\\1')", $c); $output = common_markup_to_html($c);
$c = preg_replace('/%%doc.(\w+)%%/e', "common_local_url('doc', array('title'=>'\\1'))", $c);
$c = preg_replace('/%%(\w+).(\w+)%%/e', 'common_config(\'\\1\', \'\\2\')', $c);
$output = Markdown($c);
common_show_header(_t(ucfirst($title))); common_show_header(_t(ucfirst($title)));
common_raw($output); common_raw($output);
common_show_footer(); common_show_footer();

View File

@ -24,25 +24,15 @@ require_once(INSTALLDIR.'/lib/jabber.php');
class ImsettingsAction extends SettingsAction { class ImsettingsAction extends SettingsAction {
function show_top($arr) { function get_instructions() {
$msg = $arr[0];
$success = $arr[1];
if ($msg) {
$this->message($msg, $success);
} else {
common_element('div', 'instructions',
_t('You can send and receive notices through '. _t('You can send and receive notices through '.
'Jabber/GTalk instant messages. Configure '. 'Jabber/GTalk [instant messages](%%doc.im%%). Configure '.
'your address and settings below.')); 'your address and settings below.');
}
$this->settings_menu();
} }
function show_form($msg=NULL, $success=false) { function show_form($msg=NULL, $success=false) {
$user = common_current_user(); $user = common_current_user();
common_show_header(_t('IM settings'), NULL, array($msg, $success), $this->form_header(_t('IM Settings'), $msg, $success);
array($this, 'show_top'));
common_element_start('form', array('method' => 'POST', common_element_start('form', array('method' => 'POST',
'id' => 'imsettings', 'id' => 'imsettings',
'action' => 'action' =>

View File

@ -24,26 +24,17 @@ require_once(INSTALLDIR.'/lib/openid.php');
class OpenidsettingsAction extends SettingsAction { class OpenidsettingsAction extends SettingsAction {
function show_top($arr) { function get_instructions() {
$msg = $arr[0]; return _t('[OpenID](%%doc.openid%%) lets you log into many sites ' .
$success = $arr[1]; ' with the same user account. '.
' Manage your associated OpenIDs from here.');
if ($msg) {
$this->message($msg, $success);
} else {
common_element('div', 'instructions',
_t('Manage your associated OpenIDs from here.'));
}
$this->settings_menu();
} }
function show_form($msg=NULL, $success=false) { function show_form($msg=NULL, $success=false) {
$user = common_current_user(); $user = common_current_user();
common_show_header(_t('OpenID settings'), NULL, array($msg, $success), $this->form_header(_t('OpenID settings'), $msg, $success);
array($this, 'show_top'));
common_element_start('form', array('method' => 'POST', common_element_start('form', array('method' => 'POST',
'id' => 'openidadd', 'id' => 'openidadd',

View File

@ -23,21 +23,12 @@ require_once(INSTALLDIR.'/lib/settingsaction.php');
class PasswordAction extends SettingsAction { class PasswordAction extends SettingsAction {
function show_top($arr) { function get_instructions() {
$msg = $arr[0]; return _t('You can change your password here. Choose a good one!');
$success = $arr[1];
if ($msg) {
$this->message($msg, $success);
} else {
common_element('div', 'instructions',
_t('You can change your password here. Choose a good one!'));
}
$this->settings_menu();
} }
function show_form($msg=NULL, $success=false) { function show_form($msg=NULL, $success=false) {
common_show_header(_t('Change password'), NULL, $this->form_header(_t('Change password'), $msg, $success);
array($msg, $success), array($this, 'show_top'));
common_element_start('form', array('method' => 'POST', common_element_start('form', array('method' => 'POST',
'id' => 'password', 'id' => 'password',
'action' => 'action' =>

View File

@ -23,24 +23,15 @@ require_once(INSTALLDIR.'/lib/settingsaction.php');
class ProfilesettingsAction extends SettingsAction { class ProfilesettingsAction extends SettingsAction {
function show_top($arr) { function get_instructions() {
$msg = $arr[0]; return _t('You can update your personal profile info here '.
$success = $arr[1]; 'so people know more about you.');
if ($msg) {
$this->message($msg, $success);
} else {
common_element('div', 'instructions',
_t('You can update your personal profile info here '.
'so people know more about you.'));
}
$this->settings_menu();
} }
function show_form($msg=NULL, $success=false) { function show_form($msg=NULL, $success=false) {
$user = common_current_user(); $user = common_current_user();
$profile = $user->getProfile(); $profile = $user->getProfile();
common_show_header(_t('Profile settings'), NULL, array($msg, $success), $this->form_header(_t('Profile settings'), $msg, $success);
array($this, 'show_top'));
common_element_start('form', array('method' => 'POST', common_element_start('form', array('method' => 'POST',
'id' => 'profilesettings', 'id' => 'profilesettings',

View File

@ -55,6 +55,28 @@ class SettingsAction extends Action {
} }
} }
function form_header($title, $msg=NULL, $success=false) {
common_show_header($title,
NULL,
array($msg, $success),
array($this, 'show_top'));
}
function show_top($arr) {
$msg = $arr[0];
$success = $arr[1];
if ($msg) {
$this->message($msg, $success);
} else {
$inst = $this->get_instructions();
$output = common_markup_to_html($inst);
common_element_start('div', 'instructions');
common_raw($output);
common_element_end('div');
}
$this->settings_menu();
}
function settings_menu() { function settings_menu() {
# action => array('prompt', 'title') # action => array('prompt', 'title')
static $menu = static $menu =

View File

@ -1106,3 +1106,12 @@ function common_confirmation_code($bits) {
} }
return $code; return $code;
} }
# convert markup to HTML
function common_markup_to_html($c) {
$c = preg_replace('/%%action.(\w+)%%/e', "common_local_url('\\1')", $c);
$c = preg_replace('/%%doc.(\w+)%%/e', "common_local_url('doc', array('title'=>'\\1'))", $c);
$c = preg_replace('/%%(\w+).(\w+)%%/e', 'common_config(\'\\1\', \'\\2\')', $c);
return Markdown($c);
}