diff options
-rw-r--r-- | EVENTS.txt | 15 | ||||
-rw-r--r-- | db/08to09.sql | 2 | ||||
-rw-r--r-- | lib/accountsettingsaction.php | 62 | ||||
-rw-r--r-- | lib/common.php | 22 | ||||
-rw-r--r-- | lib/logingroupnav.php | 38 |
5 files changed, 83 insertions, 56 deletions
diff --git a/EVENTS.txt b/EVENTS.txt index 2c43469d4..933907933 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -122,3 +122,18 @@ StartAddressData: Allows the site owner to provide additional information about EndAddressData: At the end of <address> - $action: the current action + +StartLoginGroupNav: Before showing the login and register navigation menu +- $action: the current action + +EndLoginGroupNav: After showing the login and register navigation menu +- $action: the current action + +StartAccountSettingsNav: Before showing the account settings menu +- $action: the current action + +EndAccountSettingsNav: After showing the account settings menu +- $action: the current action + +Autoload: When trying to autoload a class +- $cls: the class being sought. A plugin might require_once the file for the class. diff --git a/db/08to09.sql b/db/08to09.sql new file mode 100644 index 000000000..892df4a39 --- /dev/null +++ b/db/08to09.sql @@ -0,0 +1,2 @@ +// SQL commands to update an 0.8.x version of Laconica +// to 0.9.x. diff --git a/lib/accountsettingsaction.php b/lib/accountsettingsaction.php index 4ab50abce..9814c48ab 100644 --- a/lib/accountsettingsaction.php +++ b/lib/accountsettingsaction.php @@ -98,38 +98,42 @@ class AccountSettingsNav extends Widget function show() { - # action => array('prompt', 'title') - $menu = - array('profilesettings' => - array(_('Profile'), - _('Change your profile settings')), - 'avatarsettings' => - array(_('Avatar'), - _('Upload an avatar')), - 'passwordsettings' => - array(_('Password'), - _('Change your password')), - 'emailsettings' => - array(_('Email'), - _('Change email handling')), - 'openidsettings' => - array(_('OpenID'), - _('Add or remove OpenIDs')), - 'userdesignsettings' => - array(_('Design'), - _('Design your profile')), - 'othersettings' => - array(_('Other'), - _('Other options'))); - $action_name = $this->action->trimmed('action'); $this->action->elementStart('ul', array('class' => 'nav')); - foreach ($menu as $menuaction => $menudesc) { - $this->action->menuItem(common_local_url($menuaction), - $menudesc[0], - $menudesc[1], - $action_name === $menuaction); + if (Event::handle('StartAccountSettingsNav', array(&$this->action))) { + + $menu = + array('profilesettings' => + array(_('Profile'), + _('Change your profile settings')), + 'avatarsettings' => + array(_('Avatar'), + _('Upload an avatar')), + 'passwordsettings' => + array(_('Password'), + _('Change your password')), + 'emailsettings' => + array(_('Email'), + _('Change email handling')), + 'openidsettings' => + array(_('OpenID'), + _('Add or remove OpenIDs')), + 'userdesignsettings' => + array(_('Design'), + _('Design your profile')), + 'othersettings' => + array(_('Other'), + _('Other options'))); + + foreach ($menu as $menuaction => $menudesc) { + $this->action->menuItem(common_local_url($menuaction), + $menudesc[0], + $menudesc[1], + $action_name === $menuaction); + } + + Event::handle('EndAccountSettingsNav', array(&$this->action)); } $this->action->elementEnd('ul'); diff --git a/lib/common.php b/lib/common.php index b3d301862..5cecf309a 100644 --- a/lib/common.php +++ b/lib/common.php @@ -19,7 +19,7 @@ if (!defined('LACONICA')) { exit(1); } -define('LACONICA_VERSION', '0.8.1dev'); +define('LACONICA_VERSION', '0.9.0dev'); define('AVATAR_PROFILE_SIZE', 96); define('AVATAR_STREAM_SIZE', 48); @@ -381,17 +381,19 @@ require_once INSTALLDIR.'/lib/serverexception.php'; define('NICKNAME_FMT', VALIDATE_NUM.VALIDATE_ALPHA_LOWER); -function __autoload($class) +function __autoload($cls) { - if ($class == 'OAuthRequest') { + if (file_exists(INSTALLDIR.'/classes/' . $cls . '.php')) { + require_once(INSTALLDIR.'/classes/' . $cls . '.php'); + } else if (file_exists(INSTALLDIR.'/lib/' . strtolower($cls) . '.php')) { + require_once(INSTALLDIR.'/lib/' . strtolower($cls) . '.php'); + } else if (mb_substr($cls, -6) == 'Action' && + file_exists(INSTALLDIR.'/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php')) { + require_once(INSTALLDIR.'/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); + } else if ($cls == 'OAuthRequest') { require_once('OAuth.php'); - } else if (file_exists(INSTALLDIR.'/classes/' . $class . '.php')) { - require_once(INSTALLDIR.'/classes/' . $class . '.php'); - } else if (file_exists(INSTALLDIR.'/lib/' . strtolower($class) . '.php')) { - require_once(INSTALLDIR.'/lib/' . strtolower($class) . '.php'); - } else if (mb_substr($class, -6) == 'Action' && - file_exists(INSTALLDIR.'/actions/' . strtolower(mb_substr($class, 0, -6)) . '.php')) { - require_once(INSTALLDIR.'/actions/' . strtolower(mb_substr($class, 0, -6)) . '.php'); + } else { + Event::handle('Autoload', array(&$cls)); } } diff --git a/lib/logingroupnav.php b/lib/logingroupnav.php index f23985f3a..bae45b077 100644 --- a/lib/logingroupnav.php +++ b/lib/logingroupnav.php @@ -69,26 +69,30 @@ class LoginGroupNav extends Widget function show() { - // action => array('prompt', 'title') - $menu = array(); - - $menu['login'] = array(_('Login'), - _('Login with a username and password')); - if (!(common_config('site','closed') || common_config('site','inviteonly'))) { - $menu['register'] = array(_('Register'), - _('Sign up for a new account')); - } - $menu['openidlogin'] = array(_('OpenID'), - _('Login or register with OpenID')); - $action_name = $this->action->trimmed('action'); + $this->action->elementStart('ul', array('class' => 'nav')); - foreach ($menu as $menuaction => $menudesc) { - $this->action->menuItem(common_local_url($menuaction), - $menudesc[0], - $menudesc[1], - $action_name === $menuaction); + if (Event::handle('StartLoginGroupNav', array(&$this->action))) { + + $this->action->menuItem(common_local_url('login'), + _('Login'), + _('Login with a username and password'), + $action_name === 'login'); + + if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + $this->action->menuItem(common_local_url('register'), + _('Register'), + _('Sign up for a new account'), + $action_name === 'register'); + } + + $this->action->menuItem(common_local_url('openidlogin'), + _('OpenID'), + _('Login or register with OpenID'), + $action_name === 'openidlogin'); + + Event::handle('EndLoginGroupNav', array(&$this->action)); } $this->action->elementEnd('ul'); |