X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fprofileaction.php;h=2d4d232655caf3322ee8b5c079669ce93788cd8f;hb=4e6f587f868d71f08c618d0dedf6ddf0331619c2;hp=1f2e309945c2ca3af30ba054c277b95445c7a25c;hpb=ff7d71181038ba1e97e9bbcaa7901638aa715574;p=quix0rs-gnu-social.git diff --git a/lib/profileaction.php b/lib/profileaction.php index 1f2e309945..2d4d232655 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -1,6 +1,6 @@ . * * @category Personal - * @package Laconica - * @author Evan Prodromou - * @author Sarven Capadisli - * @copyright 2008-2009 Control Yourself, Inc. + * @package StatusNet + * @author Evan Prodromou + * @author Sarven Capadisli + * @copyright 2008-2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -41,24 +41,24 @@ require_once INSTALLDIR.'/lib/groupminilist.php'; * Abstracts out common code from profile and personal tabs * * @category Personal - * @package Laconica - * @author Evan Prodromou + * @package StatusNet + * @author Evan Prodromou * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -class ProfileAction extends Action +class ProfileAction extends OwnerDesignAction { - var $user = null; - var $page = null; + var $page = null; var $profile = null; + var $tag = null; function prepare($args) { parent::prepare($args); $nickname_arg = $this->arg('nickname'); - $nickname = common_canonical_nickname($nickname_arg); + $nickname = common_canonical_nickname($nickname_arg); // Permanent redirect on non-canonical nickname @@ -85,10 +85,9 @@ class ProfileAction extends Action return false; } + $this->tag = $this->trimmed('tag'); $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - common_set_returnto($this->selfUrl()); - return true; } @@ -109,8 +108,10 @@ class ProfileAction extends Action $this->element('h2', null, _('Subscriptions')); - if ($profile) { - $pml = new ProfileMiniList($profile, $this->user, $this); + $cnt = 0; + + if (!empty($profile)) { + $pml = new ProfileMiniList($profile, $this); $cnt = $pml->show(); if ($cnt == 0) { $this->element('p', null, _('(None)')); @@ -138,8 +139,10 @@ class ProfileAction extends Action $this->element('h2', null, _('Subscribers')); - if ($profile) { - $pml = new ProfileMiniList($profile, $this->user, $this); + $cnt = 0; + + if (!empty($profile)) { + $pml = new ProfileMiniList($profile, $this); $cnt = $pml->show(); if ($cnt == 0) { $this->element('p', null, _('(None)')); @@ -160,18 +163,10 @@ class ProfileAction extends Action function showStatistics() { - // XXX: WORM cache this - $subs = new Subscription(); - $subs->subscriber = $this->profile->id; - $subs_count = (int) $subs->count() - 1; - - $subbed = new Subscription(); - $subbed->subscribed = $this->profile->id; - $subbed_count = (int) $subbed->count() - 1; - - $notices = new Notice(); - $notices->profile_id = $this->profile->id; - $notice_count = (int) $notices->count(); + $subs_count = $this->profile->subscriptionCount(); + $subbed_count = $this->profile->subscriberCount(); + $notice_count = $this->profile->noticeCount(); + $group_count = $this->user->getGroups()->N; $this->elementStart('div', array('id' => 'entity_statistics', 'class' => 'section')); @@ -196,7 +191,7 @@ class ProfileAction extends Action array('nickname' => $this->profile->nickname))), _('Subscriptions')); $this->elementEnd('dt'); - $this->element('dd', null, (is_int($subs_count)) ? $subs_count : '0'); + $this->element('dd', null, $subs_count); $this->elementEnd('dl'); $this->elementStart('dl', 'entity_subscribers'); @@ -205,12 +200,21 @@ class ProfileAction extends Action array('nickname' => $this->profile->nickname))), _('Subscribers')); $this->elementEnd('dt'); - $this->element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0'); + $this->element('dd', 'subscribers', $subbed_count); + $this->elementEnd('dl'); + + $this->elementStart('dl', 'entity_groups'); + $this->elementStart('dt'); + $this->element('a', array('href' => common_local_url('usergroups', + array('nickname' => $this->profile->nickname))), + _('Groups')); + $this->elementEnd('dt'); + $this->element('dd', 'groups', $group_count); $this->elementEnd('dl'); $this->elementStart('dl', 'entity_notices'); $this->element('dt', null, _('Notices')); - $this->element('dd', null, (is_int($notice_count)) ? $notice_count : '0'); + $this->element('dd', null, $notice_count); $this->elementEnd('dl'); $this->elementEnd('div'); @@ -244,4 +248,5 @@ class ProfileAction extends Action $this->elementEnd('div'); } -} \ No newline at end of file +} +