diff --git a/EVENTS.txt b/EVENTS.txt index 8f094d1643..b98c6ff52f 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -1463,3 +1463,12 @@ StartNotifyMentioned: During notice distribution, we send notifications (email, EndNotifyMentioned: During notice distribution, we send notifications (email, im...) to the profiles who were somehow mentioned. - $stored: Notice object that is being distributed. - $mentioned_ids: Array of profile IDs (not just for local users) who got mentioned by the notice. + +StartHomeStubNavItems: Go back Home nav items. Default includes just one item 'home' +- $action: action being executed (for output and params) +- $items: array of items in the nav + +EndHomeStubNavItems: +- $action: action being executed (for output and params) +- $items: array of items in the nav + diff --git a/lib/adminpanelnav.php b/lib/adminpanelnav.php index 93a4d36ebb..9044749181 100644 --- a/lib/adminpanelnav.php +++ b/lib/adminpanelnav.php @@ -59,24 +59,8 @@ class AdminPanelNav extends Menu $nickname = $user->nickname; $name = $user->getProfile()->getBestName(); - // Stub section w/ home link - $this->action->elementStart('ul'); - $this->action->elementStart('li'); - // TRANS: Header in administrator navigation panel. - $this->action->element('h3', null, _m('HEADER','Home')); - $this->action->elementStart('ul', 'nav'); - $this->out->menuItem(common_local_url('all', array('nickname' => - $nickname)), - // TRANS: Menu item in administrator navigation panel. - _m('MENU','Home'), - // TRANS: Menu item title in administrator navigation panel. - // TRANS: %s is a username. - sprintf(_('%s and friends'), $name), - $this->action == 'all', 'nav_timeline_personal'); - - $this->action->elementEnd('ul'); - $this->action->elementEnd('li'); - $this->action->elementEnd('ul'); + $stub = new HomeStubNav($this->action); + $this->submenu(_m('MENU','Home'), $stub); $this->action->elementStart('ul'); $this->action->elementStart('li'); diff --git a/lib/homestubnav.php b/lib/homestubnav.php index 7dd6ae19a1..64212f18aa 100644 --- a/lib/homestubnav.php +++ b/lib/homestubnav.php @@ -49,13 +49,18 @@ class HomeStubNav extends Menu { function getItems() { - return array(array('top', - array(), - // TRANS: Menu item in personal group navigation menu. - _m('MENU','Home'), - // TRANS: Menu item title in personal group navigation menu. - // TRANS: %s is a username. - _('Back to top'), - 'nav_return_top')); + $items = array(); + if (Event::handle('StartHomeStubNavItems', array($this->action, &$items))) { + $items[] = array('top', + array(), + // TRANS: Menu item in personal group navigation menu. + _m('MENU','Home'), + // TRANS: Menu item title in personal group navigation menu. + // TRANS: %s is a username. + _('Back to top'), + 'nav_return_top'); + Event::handle('EndHomeStubNavItems', array($this->action, &$items)); + } + return $items; } } diff --git a/lib/menu.php b/lib/menu.php index 27503aa06b..4baeb70d2f 100644 --- a/lib/menu.php +++ b/lib/menu.php @@ -150,6 +150,9 @@ class Menu extends Widget function submenu($label, $menu) { + if (empty($menu->getItems())){ + return false; + } $this->action->elementStart('li'); $this->action->element('h3', null, $label); $menu->show();