]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/all.php
isReadOnly() now takes arguments
[quix0rs-gnu-social.git] / actions / all.php
index 08dcccbddb711c12ff7578e165d99c72b1068545..69890a70ca351bd2ce54978d5e6dda076dbbe262 100644 (file)
@@ -23,28 +23,10 @@ require_once INSTALLDIR.'/lib/personalgroupnav.php';
 require_once INSTALLDIR.'/lib/noticelist.php';
 require_once INSTALLDIR.'/lib/feedlist.php';
 
-class AllAction extends Action
+class AllAction extends ProfileAction
 {
-    var $user = null;
-    var $page = null;
-
-    function isReadOnly()
-    {
-        return true;
-    }
-
-    function prepare($args)
+    function isReadOnly($args)
     {
-        parent::prepare($args);
-        $nickname = common_canonical_nickname($this->arg('nickname'));
-        $this->user = User::staticGet('nickname', $nickname);
-        $this->page = $this->trimmed('page');
-        if (!$this->page) {
-            $this->page = 1;
-        }
-
-        common_set_returnto($this->selfUrl());
-
         return true;
     }
 
@@ -77,12 +59,12 @@ class AllAction extends Action
                               sprintf(_('Feed for friends of %s (RSS 1.0)'), $this->user->nickname)),
                      new Feed(Feed::RSS2,
                               common_local_url('api', array('apiaction' => 'statuses',
-                                                            'method' => 'friends',
+                                                            'method' => 'friends_timeline',
                                                             'argument' => $this->user->nickname.'.rss')),
                               sprintf(_('Feed for friends of %s (RSS 2.0)'), $this->user->nickname)),
                      new Feed(Feed::ATOM,
                               common_local_url('api', array('apiaction' => 'statuses',
-                                                            'method' => 'friends',
+                                                            'method' => 'friends_timeline',
                                                             'argument' => $this->user->nickname.'.atom')),
                               sprintf(_('Feed for friends of %s (Atom)'), $this->user->nickname)));
     }
@@ -93,6 +75,27 @@ class AllAction extends Action
         $nav->show();
     }
 
+    function showEmptyListMessage()
+    {
+        $message = sprintf(_('This is the timeline for %s and friends but no one has posted anything yet.'), $this->user->nickname) . ' ';
+
+        if (common_logged_in()) {
+            $current_user = common_current_user();
+            if ($this->user->id === $current_user->id) {
+                $message .= _('Try subscribing to more people, [join a group](%%action.groups) or post something yourself.');
+            } else {
+                $message .= sprintf(_('You can try to [nudge %s](../%s) from his profile or [post something to his or her attention](%%%%action.newnotice%%%%?status_textarea=%s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname);
+            }
+        }
+        else {
+            $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to his or her attention.'), $this->user->nickname);
+        }
+
+        $this->elementStart('div', 'guide');
+        $this->raw(common_markup_to_html($message));
+        $this->elementEnd('div');
+    }
+
     function showContent()
     {
         $notice = $this->user->noticesWithFriends(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
@@ -101,6 +104,10 @@ class AllAction extends Action
 
         $cnt = $nl->show();
 
+        if (0 == $cnt) {
+            $this->showEmptyListMessage();
+        }
+
         $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
                           $this->page, 'all', array('nickname' => $this->user->nickname));
     }