]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/all.php
do some commits
[quix0rs-gnu-social.git] / actions / all.php
index 93be7290f339f01ac773fd20bcbedded04f14011..44e3fd2394be28d1ff6dfc1e5edf3b8b71dcf514 100644 (file)
@@ -44,19 +44,33 @@ class AllAction extends StreamAction {
 
                # Looks like we're good; show the header
 
-               common_show_header($profile->nickname . _t(" and friends"));
+               common_show_header($profile->nickname . _t(" and friends"),
+                                                  array($this, 'show_header'), $user,
+                                                  array($this, 'show_top'));
+               
+               $this->show_notices($profile);
+               
+               common_show_footer();
+       }
+       
+       function show_header($user) {
+               common_element('link', array('rel' => 'alternate',
+                                                                        'href' => common_local_url('allrss', array('nickname' =>
+                                                                                                                                                          $user->nickname)),
+                                                                        'type' => 'application/rss+xml',
+                                                                        'title' => _t('Feed for friends of ') . $user->nickname));
+       }
 
+       function show_top($user) {
                $cur = common_current_user();
-
-               if ($cur && $profile->id == $cur->id) {
+               
+               if ($cur && $cur->id == $user->id) {
                        common_notice_form();
                }
-
-               $this->show_notices($profile);
                
-               common_show_footer();
+               $this->views_menu();
        }
-
+       
        function show_notices($profile) {
 
                $notice = DB_DataObject::factory('notice');
@@ -68,20 +82,26 @@ class AllAction extends StreamAction {
 
                $notice->orderBy('created DESC');
 
-               $page = $this->arg('page') || 1;
+               $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
 
-               $notice->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE);
+               $notice->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
 
-               $notice->find();
+               $cnt = $notice->find();
 
-               common_element_start('div', 'notices width100');
-               common_element('h2', 'notices', _t('Notices'));
-
-               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));
        }
 }