]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/profileaction.php
Avatar resizing improvements and better code reuse
[quix0rs-gnu-social.git] / lib / profileaction.php
index 1bc14945576258416e4034dde7d608b037816d2a..f36f099c712b2947b438aa1129e6e0ddcf21029e 100644 (file)
@@ -70,7 +70,7 @@ class ProfileAction extends Action
             return false;
         }
 
-        $this->user = User::staticGet('nickname', $nickname);
+        $this->user = User::getKV('nickname', $nickname);
 
         if (!$this->user) {
             // TRANS: Client error displayed when calling a profile action without specifying a user.
@@ -86,6 +86,13 @@ class ProfileAction extends Action
             return false;
         }
 
+        $user = common_current_user();
+
+        if ($this->profile->hasRole(Profile_role::SILENCED) &&
+            (empty($user) || !$user->hasRight(Right::SILENCEUSER))) {
+            throw new ClientException(_('This profile has been silenced by site moderators'), 403);
+        }
+
         $this->tag = $this->trimmed('tag');
         $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
         common_set_returnto($this->selfUrl());
@@ -118,8 +125,6 @@ class ProfileAction extends Action
 
     function showSubscriptions()
     {
-        $profile = $this->profile->getSubscriptions(0, PROFILES_PER_MINILIST + 1);
-
         $this->elementStart('div', array('id' => 'entity_subscriptions',
                                          'class' => 'section'));
         if (Event::handle('StartShowSubscriptionsMiniList', array($this))) {
@@ -129,16 +134,14 @@ class ProfileAction extends Action
             $this->text(' ');
             $this->text($this->profile->subscriptionCount());
             $this->elementEnd('h2');
-
-            $cnt = 0;
-
-            if (!empty($profile)) {
+        
+            try {
+                $profile = $this->profile->getSubscribed(0, PROFILES_PER_MINILIST + 1);
                 $pml = new ProfileMiniList($profile, $this);
-                $cnt = $pml->show();
-                if ($cnt == 0) {
-                    // TRANS: Text for user subscription statistics if the user has no subscriptions.
-                    $this->element('p', null, _('(None)'));
-                }
+                $pml->show();
+            } catch (NoResultException $e) {
+                // TRANS: Text for user subscription statistics if the user has no subscription
+                $this->element('p', null, _('(None)'));
             }
 
             Event::handle('EndShowSubscriptionsMiniList', array($this));
@@ -148,8 +151,6 @@ class ProfileAction extends Action
 
     function showSubscribers()
     {
-        $profile = $this->profile->getSubscribers(0, PROFILES_PER_MINILIST + 1);
-
         $this->elementStart('div', array('id' => 'entity_subscribers',
                                          'class' => 'section'));
 
@@ -162,15 +163,13 @@ class ProfileAction extends Action
             $this->text($this->profile->subscriberCount());
             $this->elementEnd('h2');
 
-            $cnt = 0;
-
-            if (!empty($profile)) {
+            try {
+                $profile = $this->profile->getSubscribers(0, PROFILES_PER_MINILIST + 1);
                 $sml = new SubscribersMiniList($profile, $this);
-                $cnt = $sml->show();
-                if ($cnt == 0) {
-                    // TRANS: Text for user subscriber statistics if user has no subscribers.
-                    $this->element('p', null, _('(None)'));
-                }
+                $sml->show();
+            } catch (NoResultException $e) {
+                // TRANS: Text for user subscriber statistics if user has no subscribers.
+                $this->element('p', null, _('(None)'));
             }
 
             Event::handle('EndShowSubscribersMiniList', array($this));