X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fgroupsnav.php;h=8e5d1a39fb60584f29b001103c74f5fb8ce0ca24;hb=746e658f3e398948fe8c3f047e2b35ef6aa7ebd5;hp=26058c2b7ef8ae5656dba4f246d79a6549481394;hpb=ad86eb78d3dc395b438d1543a36eca509f53e9d4;p=quix0rs-gnu-social.git diff --git a/lib/groupsnav.php b/lib/groupsnav.php index 26058c2b7e..8e5d1a39fb 100644 --- a/lib/groupsnav.php +++ b/lib/groupsnav.php @@ -44,7 +44,7 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ -class GroupsNav extends Menu +class GroupsNav extends MoreMenu { protected $user; protected $groups; @@ -58,36 +58,56 @@ class GroupsNav extends Menu function haveGroups() { - return (!empty($this->groups) && ($this->groups->N > 0)); + return ($this->groups instanceof User_group && $this->groups->N > 0); } - /** - * Show the menu - * - * @return void - */ - function show() + function tag() { - $action = $this->actionName; + return 'groups'; + } + + function getItems() + { + $items = array(); - $this->out->elementStart('ul', array('class' => 'nav')); + while ($this->groups instanceof User_group && $this->groups->fetch()) { + $items[] = array('placeholder', + array('nickname' => $this->groups->nickname, + 'mainpage' => $this->groups->homeUrl()), + $this->groups->getBestName(), + $this->groups->getBestName() + ); + } - if (Event::handle('StartGroupsNav', array($this))) { + return $items; + } - while ($this->groups->fetch()) { - $this->out->menuItem(($this->groups->mainpage) ? - $this->groups->mainpage : - common_local_url('showgroup', - array('nickname' => $this->groups->nickname)), - $this->groups->getBestName(), - '', - $action == 'showgroup' && - $this->action->arg('nickname') == $this->groups->nickname, - 'nav_timeline_group_'.$this->groups->nickname); - } - Event::handle('EndGroupsNav', array($this)); + function seeAllItem() { + return array('usergroups', + array('nickname' => $this->user->nickname), + // TRANS: Link description for seeing all groups. + _('See all'), + // TRANS: Link title for seeing all groups. + _('See all groups you belong to.')); + } + + function item($actionName, $args, $label, $description, $id=null, $cls=null) + { + if ($actionName != 'placeholder') { + return parent::item($actionName, $args, $label, $description, $id, $cls); } - $this->out->elementEnd('ul'); + if (empty($id)) { + $id = $this->menuItemID('showgroup', array('nickname' => $args['nickname'])); + } + + $url = $args['mainpage']; + + $this->out->menuItem($url, + $label, + $description, + $this->isCurrent($actionName, $args), + $id, + $cls); } }