]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
refactor common behaviour in settings pages
authorEvan Prodromou <evan@prodromou.name>
Mon, 30 Jun 2008 17:03:42 +0000 (13:03 -0400)
committerEvan Prodromou <evan@prodromou.name>
Mon, 30 Jun 2008 17:03:42 +0000 (13:03 -0400)
darcs-hash:20080630170342-84dde-5d7feb88a0a707b24c8070802a7ec99dd1f35687.gz

actions/avatar.php
actions/doc.php
actions/imsettings.php
actions/openidsettings.php
actions/password.php
actions/profilesettings.php
lib/settingsaction.php
lib/util.php

index a22512750ebe6148da563bc8baa5c1a3066af67a..ac28d81704640f245165f261d17dc2a48a3fc4db 100644 (file)
@@ -23,25 +23,18 @@ require_once(INSTALLDIR.'/lib/settingsaction.php');
 
 class AvatarAction extends SettingsAction {
 
-       function show_top($arr) {
-               $msg = $arr[0];
-               $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 ' .
-                                                         'make sure it\'s more or less square. ' . 
-                                                         'It must be under the site license, also. ' .
-                                                         'Use a picture that belongs to you and that you ' .
-                                                         'want to share.'));
-               }
-               $this->settings_menu();
+    function get_instructions() {
+               return _t('Upload a new "avatar" (user image) here. ' .
+                                 'You can\'t edit the picture after you upload it, so ' .
+                                 'make sure it\'s more or less square. ' .
+                                 'It must be under the site license, also. ' .
+                                 'Use a picture that belongs to you and that you ' .
+                                 'want to share.');
        }
-       
+
        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();
                $profile = $user->getProfile();
@@ -120,7 +113,7 @@ class AvatarAction extends SettingsAction {
 
                $user = common_current_user();
                $profile = $user->getProfile();
-               
+
                if ($profile->setOriginal($_FILES['avatarfile']['tmp_name'])) {
                        $this->show_form(_t('Avatar updated.'), true);
                } else {
index edb2cab62042dbae8d6142158e2f889fba421c0a..6c88c4200c44a759d6ddc108f32c9c02a9284703 100644 (file)
@@ -32,12 +32,9 @@ class DocAction extends Action {
                        return;
                }
                $c = file_get_contents($filename);
-               $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);
-               $output = Markdown($c);
+               $output = common_markup_to_html($c);
                common_show_header(_t(ucfirst($title)));
                common_raw($output);
                common_show_footer();
        }
-}
\ No newline at end of file
+}
index 11dd9ee3b4546bda680544c01b936a55142adcd1..eb33d4e06a318516f78d7e6a2aeb636f8e8547f5 100644 (file)
@@ -24,25 +24,15 @@ require_once(INSTALLDIR.'/lib/jabber.php');
 
 class ImsettingsAction extends SettingsAction {
 
-       function show_top($arr) {
-               $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 '.
-                                                         'Jabber/GTalk instant messages. Configure '.
-                                                         'your address and settings below.'));
-               }
-               $this->settings_menu();
+       function get_instructions() {
+               _t('You can send and receive notices through '.
+                  'Jabber/GTalk [instant messages](%%doc.im%%). Configure '.
+                  'your address and settings below.');
        }
 
        function show_form($msg=NULL, $success=false) {
                $user = common_current_user();
-               common_show_header(_t('IM settings'), NULL, array($msg, $success),
-                                                  array($this, 'show_top'));
-
+               $this->form_header(_t('IM Settings'), $msg, $success);
                common_element_start('form', array('method' => 'POST',
                                                                                   'id' => 'imsettings',
                                                                                   'action' =>
index a915542a6fcc0956699c52b6089395ee098a420c..c7cceebf901bf09e6b1d5d5b0dce3b4bbe01b597 100644 (file)
@@ -23,28 +23,19 @@ require_once(INSTALLDIR.'/lib/settingsaction.php');
 require_once(INSTALLDIR.'/lib/openid.php');
 
 class OpenidsettingsAction extends SettingsAction {
-       
-       function show_top($arr) {
-               $msg = $arr[0];
-               $success = $arr[1];
-               
-               if ($msg) {
-                       $this->message($msg, $success);
-               } else {
-                       common_element('div', 'instructions',
-                                                  _t('Manage your associated OpenIDs from here.'));
-               }
-               
-               $this->settings_menu();
+
+       function get_instructions() {
+               return _t('[OpenID](%%doc.openid%%) lets you log into many sites ' .
+                         ' with the same user account. '.
+                         ' Manage your associated OpenIDs from here.');
        }
-       
+
        function show_form($msg=NULL, $success=false) {
-               
+
                $user = common_current_user();
-               
-               common_show_header(_t('OpenID settings'), NULL, array($msg, $success),
-                                                  array($this, 'show_top'));
-               
+
+               $this->form_header(_t('OpenID settings'), $msg, $success);
+
                common_element_start('form', array('method' => 'POST',
                                                                                   'id' => 'openidadd',
                                                                                   'action' =>
@@ -66,36 +57,36 @@ class OpenidsettingsAction extends SettingsAction {
                                                                          'value' => _t('Add')));
                common_element_end('p');
                common_element_end('form');
-               
+
                $oid = new User_openid();
                $oid->user_id = $user->id;
-               
+
                $cnt = $oid->find();
-               
+
                if ($cnt > 0) {
-                       
+
                        common_element('h2', NULL, _t('Remove OpenID'));
-                       
+
                        if ($cnt == 1 && !$user->password) {
-                               
+
                                common_element('p', NULL,
                                                           _t('Removing your only OpenID would make it impossible to log in! ' .
                                                                  'If you need to remove it, add another OpenID first.'));
-                               
+
                                if ($oid->fetch()) {
                                        common_element_start('p');
                                        common_element('a', array('href' => $oid->canonical),
                                                                   $oid->display);
                                        common_element_end('p');
                                }
-                               
+
                        } else {
-                               
+
                                common_element('p', NULL,
                                                           _t('You can remove an OpenID from your account '.
                                                                  'by clicking the button marked "Remove".'));
                                $idx = 0;
-                               
+
                                while ($oid->fetch()) {
                                        common_element_start('form', array('method' => 'POST',
                                                                                                           'id' => 'openiddelete' . $idx,
@@ -119,10 +110,10 @@ class OpenidsettingsAction extends SettingsAction {
                                }
                        }
                }
-               
+
                common_show_footer();
        }
-       
+
        function handle_post() {
                if ($this->arg('add')) {
                        $result = oid_authenticate($this->trimmed('openid_url'), 'finishaddopenid');
@@ -135,9 +126,9 @@ class OpenidsettingsAction extends SettingsAction {
                        $this->show_form(_t('Something weird happened.'));
                }
        }
-       
+
        function remove_openid() {
-               
+
                $openid_url = $this->trimmed('openid_url');
                $oid = User_openid::staticGet('canonical', $openid_url);
                if (!$oid) {
@@ -153,4 +144,4 @@ class OpenidsettingsAction extends SettingsAction {
                $this->show_form(_t('OpenID removed.'), true);
                return;
        }
-}
\ No newline at end of file
+}
index 3481ad33bb482bb3805a50d426e3496e4218c75a..628bfb5c0316882e6b87aafef3d27e51fbca9913 100644 (file)
@@ -23,21 +23,12 @@ require_once(INSTALLDIR.'/lib/settingsaction.php');
 
 class PasswordAction extends SettingsAction {
 
-       function show_top($arr) {
-               $msg = $arr[0];
-               $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 get_instructions() {
+               return _t('You can change your password here. Choose a good one!');
        }
-       
+
        function show_form($msg=NULL, $success=false) {
-               common_show_header(_t('Change password'), NULL,
-                                                  array($msg, $success), array($this, 'show_top'));
+               $this->form_header(_t('Change password'), $msg, $success);
                common_element_start('form', array('method' => 'POST',
                                                                                   'id' => 'password',
                                                                                   'action' =>
@@ -90,4 +81,4 @@ class PasswordAction extends SettingsAction {
 
                $this->show_form(_t('Password saved'), true);
        }
-}
\ No newline at end of file
+}
index 44243f310d95adcd8318b910c81f0d5b28643332..49e24874871e30c20a2d0254cc8b24eacec7d092 100644 (file)
@@ -23,24 +23,15 @@ require_once(INSTALLDIR.'/lib/settingsaction.php');
 
 class ProfilesettingsAction extends SettingsAction {
 
-       function show_top($arr) {
-               $msg = $arr[0];
-               $success = $arr[1];
-               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 get_instructions() {
+               return _t('You can update your personal profile info here '.
+                                 'so people know more about you.');
        }
-       
+
        function show_form($msg=NULL, $success=false) {
                $user = common_current_user();
                $profile = $user->getProfile();
-               common_show_header(_t('Profile settings'), NULL, array($msg, $success),
-                                                  array($this, 'show_top'));
+               $this->form_header(_t('Profile settings'), $msg, $success);
 
                common_element_start('form', array('method' => 'POST',
                                                                                   'id' => 'profilesettings',
@@ -70,7 +61,7 @@ class ProfilesettingsAction extends SettingsAction {
        }
 
        function handle_post() {
-               
+
                $nickname = $this->trimmed('nickname');
                $fullname = $this->trimmed('fullname');
                $email = $this->trimmed('email');
@@ -79,7 +70,7 @@ class ProfilesettingsAction extends SettingsAction {
                $location = $this->trimmed('location');
 
                # Some validation
-               
+
                if ($email && !Validate::email($email, true)) {
                        $this->show_form(_t('Not a valid email address.'));
                        return;
@@ -111,22 +102,22 @@ class ProfilesettingsAction extends SettingsAction {
                        $this->show_form(_t('Email address already exists.'));
                        return;
                }
-               
+
                $user = common_current_user();
 
                $user->query('BEGIN');
 
                if ($user->nickname != $nickname) {
-                       
+
                        common_debug('Updating user nickname from ' . $user->nickname . ' to ' . $nickname,
                                                 __FILE__);
-                       
+
                        $original = clone($user);
-               
+
                        $user->nickname = $nickname;
 
                        $result = $user->updateKeys($original);
-               
+
                        if ($result === FALSE) {
                                common_log_db_error($user, 'UPDATE', __FILE__);
                                common_server_error(_t('Couldnt update user.'));
@@ -135,34 +126,34 @@ class ProfilesettingsAction extends SettingsAction {
                }
 
                if ($user->email != $email) {
-                       
+
                        common_debug('Updating user email from ' . $user->email . ' to ' . $email,
                                                 __FILE__);
-                       
+
                        # We don't update email directly; it gets done by confirmemail
 
                        $confirm = new Confirm_address();
-                       
+
                        $confirm->code = common_confirmation_code(128);
                        $confirm->user_id = $user->id;
                        $confirm->address = $email;
                        $confirm->address_type = 'email';
-                       
+
                        $result = $confirm->insert();
-                       
+
                        if (!$result) {
                                common_log_db_error($confirm, 'INSERT', __FILE__);
                                common_server_error(_t('Couldnt confirm email.'));
                                return FALSE;
                        }
-                       
+
                        # XXX: try not to do this in the middle of a transaction
-               
+
                        mail_confirm_address($confirm->code,
                                                                 $profile->nickname,
                                                                 $email);
                }
-               
+
                $profile = $user->getProfile();
 
                $orig_profile = clone($profile);
@@ -176,9 +167,9 @@ class ProfilesettingsAction extends SettingsAction {
 
                common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
                common_debug('New profile: ' . common_log_objstring($profile), __FILE__);
-               
+
                $result = $profile->update($orig_profile);
-               
+
                if (!$result) {
                        common_log_db_error($profile, 'UPDATE', __FILE__);
                        common_server_error(_t('Couldnt save profile.'));
@@ -191,7 +182,7 @@ class ProfilesettingsAction extends SettingsAction {
 
                $this->show_form(_t('Settings saved.'), TRUE);
        }
-       
+
        function nickname_exists($nickname) {
                $user = common_current_user();
                $other = User::staticGet('nickname', $nickname);
@@ -201,7 +192,7 @@ class ProfilesettingsAction extends SettingsAction {
                        return $other->id != $user->id;
                }
        }
-       
+
        function email_exists($email) {
                $user = common_current_user();
                $other = User::staticGet('email', $email);
index 2a80c0e31b3c9669c366fa095e24df60f2c30422..eca5e9352466b5376f6a92e7c4303695bd3a4c56 100644 (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() {
         # action => array('prompt', 'title')
         static $menu =
index f3ab42ea95eca6746313eff2dc051e8a5c536358..9e1b1a8c9ac41b512f07a8ec5a84ed519456e838 100644 (file)
@@ -1106,3 +1106,12 @@ function common_confirmation_code($bits) {
        }
        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);
+}