function haveGroups()
{
- return (!empty($this->groups) && ($this->groups->N > 0));
+ return ($this->groups instanceof User_group && $this->groups->N > 0);
}
function tag()
{
$items = array();
- while ($this->groups->fetch()) {
- $items[] = array('showgroup',
- array('nickname' => $this->groups->nickname),
- $this->groups->getBestName(),
+ while ($this->groups instanceof User_group && $this->groups->fetch()) {
+ $items[] = array('placeholder',
+ array('nickname' => $this->groups->getNickname(),
+ 'mainpage' => $this->groups->homeUrl()),
+ $this->groups->getNickname(),
$this->groups->getBestName()
);
}
return $items;
}
-
+
+ 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, array $args, $label, $description, $id=null, $cls=null)
+ {
+ if ($actionName != 'placeholder') {
+ return parent::item($actionName, $args, $label, $description, $id, $cls);
+ }
+
+ 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);
+ }
}