]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/profilelist.php
Removed double spaces from strings
[quix0rs-gnu-social.git] / lib / profilelist.php
index 8c7f2abd7b459c71ac3426a0fcb20312b93df46a..9079ea9d7c64c162d3794c3720b09c884e8c1939 100644 (file)
@@ -25,17 +25,21 @@ define('PROFILES_PER_PAGE', 20);
 class ProfileList {
 
        var $profile = NULL;
-       
-       function __construct($profile) {
+       var $owner = NULL;
+       var $action = NULL;
+
+       function __construct($profile, $owner=NULL, $action=NULL) {
                $this->profile = $profile;
+               $this->owner = $owner;
+               $this->action = $action;
        }
-       
+
        function show_list() {
-               
-               common_element_start('ul', array('id' => 'profiles'));
+
+               common_element_start('ul', array('id' => 'profiles', 'class' => 'profile_list'));
 
                $cnt = 0;
-               
+
                while ($this->profile->fetch()) {
                        $cnt++;
                        if($cnt > PROFILES_PER_PAGE) {
@@ -43,20 +47,19 @@ class ProfileList {
                        }
                        $this->show();
                }
-               
+
                common_element_end('ul');
-               
+
                return $cnt;
        }
-       
+
        function show() {
 
-               $this->profile = $this->profile;
-               
                common_element_start('li', array('class' => 'profile_single',
                                                                                 'id' => 'profile-' . $this->profile->id));
-               
+
                $user = common_current_user();
+
                if ($user && $user->id != $this->profile->id) {
                        # XXX: special-case for user looking at own
                        # subscriptions page
@@ -66,7 +69,7 @@ class ProfileList {
                                common_subscribe_form($this->profile);
                        }
                }
-               
+
                $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
                common_element_start('a', array('href' => $this->profile->profileurl));
                common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE),
@@ -107,57 +110,59 @@ class ProfileList {
                        common_raw($this->highlight($this->profile->bio));
                        common_element_end('p');
                }
-               
-               $tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
-               
-               if ($tags) {
-                       common_element_start('p', 'tags');
-                       foreach ($tags as $tag) {
-                               common_element('a', array('rel' => 'tag',
-                                                                                 'href' => common_local_url('peopletag',
-                                                                                                                                        array('tag' => $tag))),
-                                                          $tag);
-                       }
-                       common_element_end('p');
-               }
-
-               $user = common_current_user();
-
-               $action = NULL;
-               
-               if ($user->isSubscribed($profile)) {
-                       $action = 'subscriptions';
-               } else if (Subscription::pkeyGet(array('subscriber' => $profile->id,
-                                                                                          'subscribed' => $user->id))) {
-                       $action = 'subscribers';
-               }
 
+               # If we're on a list with an owner (subscriptions or subscribers)...
 
-               if ($action) {
-                       $tags = Profile_tag::getTags($user->id, $profile->id);
+               if ($this->owner) {
+                       # Get tags
+                       $tags = Profile_tag::getTags($this->owner->id, $this->profile->id);
 
+                       common_element_start('div', 'tags_user');
+                       common_element_start('dl');
+                       common_element_start('dt');
+                       if ($user->id == $this->owner->id) {
+                               common_element('a', array('href' => common_local_url('tagother',
+                                                                                                                                        array('id' => $this->profile->id))),
+                                                          _('Tags'));
+                       } else {
+                               common_text(_('Tags'));
+                       }
+                       common_text(":");
+                       common_element_end('dt');
+                       common_element_start('dd');
                        if ($tags) {
-                               common_element_start('p', 'subtags');
-                       
+                               common_element_start('ul', 'tags xoxo');
                                foreach ($tags as $tag) {
-                                       common_element('a', array('href' => common_local_url($action,
-                                                                                                                                                array('nickname' => $user->nickname,
+                                       common_element_start('li');
+                                       common_element('a', array('rel' => 'tag',
+                                                                                         'href' => common_local_url($this->action,
+                                                                                                                                                array('nickname' => $this->owner->nickname,
                                                                                                                                                           'tag' => $tag))),
                                                                   $tag);
+                                       common_element_end('li');
                                }
-                       
-                               common_element_end('p');
+                               common_element_end('ul');
+                       } else {
+                               common_text(_('(none)'));
                        }
-                       
-                       common_element('a', array('href' => 'tagother',
-                                                                         'id' => $profile->id,
-                                                                         'class' => 'tagother'),
-                                                  _('Tag'));
+                       common_element_end('dd');
+                       common_element_end('dl');
+                       common_element_end('div');
                }
-               
+
+        if ($user && $user->id == $this->owner->id) {
+            $this->show_owner_controls($this->profile);
+        }
+
                common_element_end('li');
        }
 
+    /* Override this in subclasses. */
+
+    function show_owner_controls($profile) {
+        return;
+    }
+
        function highlight($text) {
                return htmlspecialchars($text);
        }