]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/accountprofileblock.php
If there's no Happening, we can't use the RSVP.
[quix0rs-gnu-social.git] / lib / accountprofileblock.php
index 61b65435abff40a7f49f1e1ab3e530456eee7147..875acbb59c30ea500b38ff27b85fe660f70dd21a 100644 (file)
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
 
 /**
  * Profile block to show for an account
@@ -44,28 +40,21 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
  * @link      http://status.net/
  */
-
 class AccountProfileBlock extends ProfileBlock
 {
     protected $profile = null;
     protected $user    = null;
 
-    function __construct($out, $profile)
+    function __construct(Action $out, Profile $profile)
     {
         parent::__construct($out);
         $this->profile = $profile;
-        $this->user    = User::staticGet('id', $profile->id);
-    }
-
-    function avatar()
-    {
-        $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
-        if (empty($avatar)) {
-            $avatar = $this->profile->getAvatar(73);
+        try {
+            $this->user = $this->profile->getUser();
+        } catch (NoSuchUserException $e) {
+            // The profile presented is non-local
+            assert(!$this->profile->isLocal());
         }
-        return (!empty($avatar)) ?
-            $avatar->displayUrl() :
-            Avatar::defaultImage(AVATAR_PROFILE_SIZE);
     }
 
     function name()
@@ -93,6 +82,31 @@ class AccountProfileBlock extends ProfileBlock
         return $this->profile->bio;
     }
 
+    function otherProfiles()
+    {
+        $others = array();
+
+        Event::handle('OtherAccountProfiles', array($this->profile, &$others));
+        
+        return $others;
+    }
+
+    function showTags()
+    {
+        $cur = common_current_user();
+
+        $self_tags = new SelftagsWidget($this->out, $this->profile, $this->profile);
+        $self_tags->show();
+
+        if ($cur) {
+            // don't show self-tags again
+            if ($cur->id != $this->profile->id && $cur->getProfile()->canTag($this->profile)) {
+                $tags = new PeopletagsWidget($this->out, $cur, $this->profile);
+                $tags->show();
+            }
+        }
+    }
+
     function showActions()
     {
         if (Event::handle('StartProfilePageActionsSection', array($this->out, $this->profile))) {
@@ -121,9 +135,6 @@ class AccountProfileBlock extends ProfileBlock
             if (Event::handle('StartProfilePageActionsElements', array($this->out, $this->profile))) {
                 if (empty($cur)) { // not logged in
                     if (Event::handle('StartProfileRemoteSubscribe', array($this->out, $this->profile))) {
-                        $this->out->elementStart('li', 'entity_subscribe');
-                        $this->showRemoteSubscribeLink();
-                        $this->out->elementEnd('li');
                         Event::handle('EndProfileRemoteSubscribe', array($this->out, $this->profile));
                     }
                 } else {
@@ -131,9 +142,9 @@ class AccountProfileBlock extends ProfileBlock
                         $this->out->elementStart('li', 'entity_edit');
                         $this->out->element('a', array('href' => common_local_url('profilesettings'),
                                                   // TRANS: Link title for link on user profile.
-                                                  'title' => _('Edit profile settings')),
+                                                  'title' => _('Edit profile settings.')),
                                        // TRANS: Link text for link on user profile.
-                                       _('Edit'));
+                                       _m('BUTTON','Edit'));
                         $this->out->elementEnd('li');
                     } else { // someone else's page
 
@@ -144,27 +155,19 @@ class AccountProfileBlock extends ProfileBlock
                         if ($cur->isSubscribed($this->profile)) {
                             $usf = new UnsubscribeForm($this->out, $this->profile);
                             $usf->show();
+                        } else if ($cur->hasPendingSubscription($this->profile)) {
+                            $sf = new CancelSubscriptionForm($this->out, $this->profile);
+                            $sf->show();
                         } else {
                             $sf = new SubscribeForm($this->out, $this->profile);
                             $sf->show();
                         }
                         $this->out->elementEnd('li');
 
-                        if ($cur->mutuallySubscribed($this->profile)) {
-
-                            // message
-
-                            $this->out->elementStart('li', 'entity_send-a-message');
-                            $this->out->element('a', array('href' => common_local_url('newmessage', array('to' => $this->user->id)),
-                                                      // TRANS: Link title for link on user profile.
-                                                      'title' => _('Send a direct message to this user')),
-                                           // TRANS: Link text for link on user profile.
-                                           _('Message'));
-                            $this->out->elementEnd('li');
-
+                        if ($this->profile->isLocal() && $cur->mutuallySubscribed($this->profile)) {
                             // nudge
 
-                            if ($this->user && $this->user->email && $this->user->emailnotifynudge) {
+                            if ($this->user->email && $this->user->emailnotifynudge) {
                                 $this->out->elementStart('li', 'entity_nudge');
                                 $nf = new NudgeForm($this->out, $this->user);
                                 $nf->show();
@@ -278,13 +281,13 @@ class AccountProfileBlock extends ProfileBlock
         $this->out->elementEnd('li');
     }
 
-    function showRemoteSubscribeLink()
+    function show()
     {
-        $url = common_local_url('remotesubscribe',
-                                array('nickname' => $this->profile->nickname));
-        $this->out->element('a', array('href' => $url,
-                                  'class' => 'entity_remote_subscribe'),
-                       // TRANS: Link text for link that will subscribe to a remote profile.
-                       _('Subscribe'));
+        $this->out->elementStart('div', 'profile_block account_profile_block section');
+        if (Event::handle('StartShowAccountProfileBlock', array($this->out, $this->profile))) {
+            parent::show();
+            Event::handle('EndShowAccountProfileBlock', array($this->out, $this->profile));
+        }
+        $this->out->elementEnd('div');
     }
 }