]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Move streams nav to groups nav
authorEvan Prodromou <evan@status.net>
Tue, 5 Apr 2011 21:49:45 +0000 (17:49 -0400)
committerEvan Prodromou <evan@status.net>
Tue, 5 Apr 2011 21:49:45 +0000 (17:49 -0400)
lib/defaultlocalnav.php
lib/groupsnav.php [new file with mode: 0644]
lib/streamsnav.php [deleted file]

index f150407621e83b8c75451b98e0cb4a395e013239..a61ebbb585fbc8373767ec82cb34a056c0ce889d 100644 (file)
@@ -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 (file)
index 0000000..1d2066f
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2011, StatusNet, Inc.
+ *
+ * Menu for streams
+ * 
+ * PHP version 5
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @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 <evan@status.net>
+ * @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 (file)
index 2051cc3..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2011, StatusNet, Inc.
- *
- * Menu for streams
- * 
- * PHP version 5
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @category  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @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 <evan@status.net>
- * @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');
-    }
-}