]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/all.php
do some commits
[quix0rs-gnu-social.git] / actions / all.php
index b929b6c1c1666030bd4fc0483509fec9d0d48111..44e3fd2394be28d1ff6dfc1e5edf3b8b71dcf514 100644 (file)
@@ -45,14 +45,9 @@ class AllAction extends StreamAction {
                # Looks like we're good; show the header
 
                common_show_header($profile->nickname . _t(" and friends"),
-                                                  array($this, 'show_header'), $user);
-
-               $cur = common_current_user();
-
-               if ($cur && $profile->id == $cur->id) {
-                       common_notice_form();
-               }
-
+                                                  array($this, 'show_header'), $user,
+                                                  array($this, 'show_top'));
+               
                $this->show_notices($profile);
                
                common_show_footer();
@@ -66,6 +61,16 @@ class AllAction extends StreamAction {
                                                                         'title' => _t('Feed for friends of ') . $user->nickname));
        }
 
+       function show_top($user) {
+               $cur = common_current_user();
+               
+               if ($cur && $cur->id == $user->id) {
+                       common_notice_form();
+               }
+               
+               $this->views_menu();
+       }
+       
        function show_notices($profile) {
 
                $notice = DB_DataObject::factory('notice');
@@ -77,20 +82,26 @@ class AllAction extends StreamAction {
 
                $notice->orderBy('created DESC');
 
-               $page = $this->arg('page') || 1;
-
-               $notice->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE);
+               $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
 
-               $notice->find();
+               $notice->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
 
-               common_element_start('div', 'notices width100');
-               common_element('h2', 'notices', _t('Notices'));
+               $cnt = $notice->find();
 
-               while ($notice->fetch()) {
-                       $this->show_notice($notice);
+               if ($cnt > 0) {
+                       common_element_start('ul', array('id' => 'notices'));
+                       for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) {
+                               if ($notice->fetch()) {
+                                       $this->show_notice($notice);
+                               } else {
+                                       // shouldn't happen!
+                                       break;
+                               }
+                       }
+                       common_element_end('ul');
                }
-
-               # XXX: show a link for the next page
-               common_element_end('div');
+               
+               common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
+                                                 $page, 'all', array('nickname' => $profile->nickname));
        }
 }