X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Faccountprofileblock.php;h=875acbb59c30ea500b38ff27b85fe660f70dd21a;hb=0b9a2fdf3ad19942e85a66b94d08501ce9c927dd;hp=a8bdb4715bf5794e8025ac0c699d3b1434dab15e;hpb=f4ff375dbd1b4cc8e3964a2d2be2d68140b0b135;p=quix0rs-gnu-social.git diff --git a/lib/accountprofileblock.php b/lib/accountprofileblock.php index a8bdb4715b..875acbb59c 100644 --- a/lib/accountprofileblock.php +++ b/lib/accountprofileblock.php @@ -28,11 +28,7 @@ * @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'); } -} \ No newline at end of file +}