]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
stop trying to get count from query
authorEvan Prodromou <evan@prodromou.name>
Thu, 20 Nov 2008 12:31:46 +0000 (07:31 -0500)
committerEvan Prodromou <evan@prodromou.name>
Thu, 20 Nov 2008 12:31:46 +0000 (07:31 -0500)
darcs-hash:20081120123146-84dde-299808e2ed7a793a8240ab1c54e71b27f51307c4.gz

lib/gallery.php
lib/profilelist.php

index 5914745f7ef0526fc04860db5568a7208c32db8e..f9d0b31fa5a095a8fae0baac915a0c59d3a39023 100644 (file)
@@ -97,41 +97,50 @@ class GalleryAction extends Action {
 
                # XXX: memcached results
                
-               $cnt = $other->query('SELECT profile.* ' .
-                                                        'FROM profile JOIN subscription ' .
-                                                        'ON profile.id = subscription.' . $lst . ' ' .
-                                                        'WHERE ' . $usr . ' = ' . $profile->id . ' ' .
-                                                        'AND subscriber != subscribed ' .
-                                                        'ORDER BY subscription.created DESC ' . 
-                                                        $lim);
+               $other->query('SELECT profile.* ' .
+                                         'FROM profile JOIN subscription ' .
+                                         'ON profile.id = subscription.' . $lst . ' ' .
+                                         'WHERE ' . $usr . ' = ' . $profile->id . ' ' .
+                                         'AND subscriber != subscribed ' .
+                                         'ORDER BY subscription.created DESC ' . 
+                                         $lim);
                
-               if ($cnt == 0) {
-                       common_element('p', 'error', _('Nobody to show!'));
-                       return;
-               }
-
                if ($display == 'list') {
                        $profile_list = new ProfileList($other);
-                       $profile_list->show_list();
+                       $cnt = $profile_list->show_list();
                } else {
-                       $this->icon_list($profile, $cnt);
+                       $cnt = $this->icon_list($other);
+               }
+
+               # For building the pagination URLs
+               
+               $args = array('nickname' => $profile->nickname);
+               
+               if ($display != 'list') {
+                       $args['display'] = $display;
                }
                
                common_pagination($page > 1,
                                                  $cnt > $per_page,
                                                  $page,
                                                  $this->trimmed('action'),
-                                                 array('nickname' => $profile->nickname));
+                                                 $args);
        }
 
-       function icon_list($other, $subs_count) {
+       function icon_list($other) {
                
                common_element_start('ul', $this->div_class());
-               
-               for ($idx = 0; $idx < min($subs_count, AVATARS_PER_PAGE); $idx++) {
 
-                       $other->fetch();
+               $cnt = 0;
+               
+               while ($other->fetch()) {
 
+                       $cnt++;
+                       
+                       if ($cnt > AVATARS_PER_PAGE) {
+                               break;
+                       }
+                       
                        common_element_start('li');
 
                        common_element_start('a', array('title' => ($other->fullname) ?
@@ -158,6 +167,8 @@ class GalleryAction extends Action {
                }
                        
                common_element_end('ul');
+               
+               return $cnt;
        }
        
        function gallery_type() {
index 15ac2a6da7d3bb160a2754488e9761ed863a9563..ebc974d6b9b991c23ba6a8eb2f615733dc2184c7 100644 (file)
@@ -45,6 +45,8 @@ class ProfileList {
                }
                
                common_element_end('ul');
+               
+               return $cnt;
        }
        
        function show() {