]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/personalgroupnav.php
If there's no Happening, we can't use the RSVP.
[quix0rs-gnu-social.git] / lib / personalgroupnav.php
index 3d6bb98fc02d7c00109d06fda0385a58675f399f..06bd2474bb928292dd043496bc4ae436adc448f4 100644 (file)
@@ -43,7 +43,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class PersonalGroupNav extends Menu
 {
     /**
@@ -51,56 +50,53 @@ class PersonalGroupNav extends Menu
      *
      * @return void
      */
-    function show()
+    public function show()
     {
-        $user         = common_current_user();
+        // FIXME: Legacy StatusNet behaviour was to do this, but really it should be the GroupNav
+        // of the targeted user! ($this->action->arg('nickname')
+        $target = Profile::current();
 
-        if (empty($user)) {
-            throw new ServerException('Do not show personal group nav with no current user.');
+        if (!$target instanceof Profile) {
+            throw new ServerException('Cannot show personal group navigation without a current user.');
         }
 
-        $user_profile = $user->getProfile();
-        $nickname     = $user->nickname;
-        $name         = $user_profile->getBestName();
+        $nickname  = $target->getNickname();
+        $name      = $target->getBestName();
+
+        $scoped = Profile::current();
+
+        $action = $this->actionName;
+        $mine = ($this->action->arg('nickname') == $nickname); // @fixme kinda vague
 
         $this->out->elementStart('ul', array('class' => 'nav'));
 
-        if (Event::handle('StartPersonalGroupNav', array($this))) {
+        if (Event::handle('StartPersonalGroupNav', array($this, $target, $scoped))) {
             $this->out->menuItem(common_local_url('all', array('nickname' =>
                                                                $nickname)),
-                                 _('Home'),
+                                 // 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.
                                  sprintf(_('%s and friends'), $name),
-                                 $this->action == 'all', 'nav_timeline_personal');
+                                 $mine && $action =='all', 'nav_timeline_personal');
             $this->out->menuItem(common_local_url('showstream', array('nickname' =>
                                                                       $nickname)),
-                                 _('Profile'),
+                                 // TRANS: Menu item in personal group navigation menu.
+                                 _m('MENU','Profile'),
+                                 // TRANS: Menu item title in personal group navigation menu.
                                  _('Your profile'),
-                                 $this->action == 'showstream',
+                                 $mine && $action =='showstream',
                                  'nav_profile');
             $this->out->menuItem(common_local_url('replies', array('nickname' =>
                                                                    $nickname)),
-                                 _('Replies'),
+                                 // TRANS: Menu item in personal group navigation menu.
+                                 _m('MENU','Replies'),
+                                 // TRANS: Menu item title in personal group navigation menu.
+                                 // TRANS: %s is a username.
                                  sprintf(_('Replies to %s'), $name),
-                                 $this->action == 'replies', 'nav_timeline_replies');
-            $this->out->menuItem(common_local_url('showfavorites', array('nickname' =>
-                                                                         $nickname)),
-                                 _('Favorites'),
-                                 sprintf(_('%s\'s favorite notices'), ($user_profile) ? $name : _('User')),
-                                 $this->action == 'showfavorites', 'nav_timeline_favorites');
-
-            $cur = common_current_user();
-
-            if ($cur && $cur->id == $user->id &&
-                !common_config('singleuser', 'enabled')) {
-
-                $this->out->menuItem(common_local_url('inbox', array('nickname' =>
-                                                                     $nickname)),
-                                     _('Messages'),
-                                     _('Your incoming messages'),
-                                     $this->action == 'inbox');
-            }
+                                 $mine && $action =='replies', 'nav_timeline_replies');
 
-            Event::handle('EndPersonalGroupNav', array($this));
+            Event::handle('EndPersonalGroupNav', array($this, $target, $scoped));
         }
         $this->out->elementEnd('ul');
     }