From 84ca1482ff02b758c68a71b37e864d8c7a617d70 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 4 Aug 2009 07:08:10 -0400 Subject: [PATCH] add hook for showing account settings menu --- EVENTS.txt | 6 ++++ lib/accountsettingsaction.php | 62 +++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index d07c31f8dc..e1dd735082 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -128,3 +128,9 @@ StartLoginGroupNav: Before showing the login and register navigation menu 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 diff --git a/lib/accountsettingsaction.php b/lib/accountsettingsaction.php index 4ab50abcef..9814c48ab7 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'); -- 2.39.5