From: Evan Prodromou Date: Tue, 5 Apr 2011 21:49:45 +0000 (-0400) Subject: Move streams nav to groups nav X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=a36fa8364ab8b0dfb7e3d1adf73733830adacc86;p=quix0rs-gnu-social.git Move streams nav to groups nav --- diff --git a/lib/defaultlocalnav.php b/lib/defaultlocalnav.php index f150407621..a61ebbb585 100644 --- a/lib/defaultlocalnav.php +++ b/lib/defaultlocalnav.php @@ -63,8 +63,10 @@ class DefaultLocalNav extends Menu $this->submenu(_m('MENU','Public'), $bn); if (!empty($user)) { - $sn = new StreamsNav($this->action); - $this->submenu(_m('MENU', 'Streams'), $sn); + $sn = new GroupsNav($this->action, $user); + if ($sn->haveGroups()) { + $this->submenu(_m('MENU', 'Groups'), $sn); + } } $this->action->elementEnd('ul'); diff --git a/lib/groupsnav.php b/lib/groupsnav.php new file mode 100644 index 0000000000..1d2066f2e5 --- /dev/null +++ b/lib/groupsnav.php @@ -0,0 +1,94 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Menu for streams you follow + * + * @category General + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class GroupsNav extends Menu +{ + protected $user; + protected $groups; + + function __construct($action, $user) + { + parent::__construct($action); + $this->user = $user; + $this->groups = $user->getGroups(); + } + + function haveGroups() + { + return (!empty($this->groups) && ($this->groups->N > 0)); + } + + /** + * Show the menu + * + * @return void + */ + function show() + { + $action = $this->actionName; + + $this->out->elementStart('ul', array('class' => 'nav')); + + if (Event::handle('StartGroupsNav', array($this))) { + + 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)); + } + + $this->out->elementEnd('ul'); + } +} diff --git a/lib/streamsnav.php b/lib/streamsnav.php deleted file mode 100644 index 2051cc3484..0000000000 --- a/lib/streamsnav.php +++ /dev/null @@ -1,83 +0,0 @@ -. - * - * @category Cache - * @package StatusNet - * @author Evan Prodromou - * @copyright 2011 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET')) { - // This check helps protect against security problems; - // your code file can't be executed directly from the web. - exit(1); -} - -/** - * Menu for streams you follow - * - * @category General - * @package StatusNet - * @author Evan Prodromou - * @copyright 2011 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 - * @link http://status.net/ - */ - -class StreamsNav extends Menu -{ - /** - * Show the menu - * - * @return void - */ - function show() - { - $user = common_current_user(); - - if (empty($user)) { - throw new ServerException('Cannot show personal group navigation without a current user.'); - } - - $action = $this->actionName; - - $this->out->elementStart('ul', array('class' => 'nav')); - - if (Event::handle('StartStreamsNav', array($this))) { - $group = $user->getGroups(); - - while ($group->fetch()) { - $this->out->menuItem(($group->mainpage) ? $group->mainpage : common_local_url('showgroup', - array('nickname' => $group->nickname)), - $group->getBestName(), - '', - $action == 'showgroup' && $this->action->arg('nickname') == $group->nickname, - 'nav_timeline_group_'.$group->nickname); - } - Event::handle('EndStreamsNav', array($this)); - } - - $this->out->elementEnd('ul'); - } -}