X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fpersonaltagcloudsection.php;h=46b4661e897ec1f8242f1185d5d7a885c6b493e9;hb=5a2d7601770a13f8cdb31285f271397ecf675be1;hp=978153a84e33cf04a007a853db100b9f773b6fab;hpb=92f9ec1580178e2a2bcc6409f1cd9fba327bce03;p=quix0rs-gnu-social.git diff --git a/lib/personaltagcloudsection.php b/lib/personaltagcloudsection.php index 978153a84e..46b4661e89 100644 --- a/lib/personaltagcloudsection.php +++ b/lib/personaltagcloudsection.php @@ -1,6 +1,6 @@ . * * @category Widget - * @package Laconica - * @author Evan Prodromou - * @copyright 2009 Control Yourself, Inc. + * @package StatusNet + * @author Evan Prodromou + * @copyright 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')) { - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * Personal tag cloud section * * @category Widget - * @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 PersonalTagCloudSection extends TagCloudSection { - var $user = null; + protected $profile = null; - function __construct($out=null, $user=null) + function __construct(Profile $profile, HTMLOutputter $out=null) { parent::__construct($out); - $this->user = $user; + $this->profile = $profile; } function title() { - return sprintf(_('Tags in %s\'s notices'), $this->user->nickname); + // TRANS: Title for personal tag cloud section. + return _m('TITLE','Tags'); } function getTags() { - if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))'; - } else { - $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))'; - } - - $qry = 'SELECT notice_tag.tag, '. + $weightexpr = common_sql_weight('notice_tag.created', common_config('tag', 'dropoff')); + // @fixme should we use the cutoff too? Doesn't help with indexing per-user. + + $qry = 'SELECT notice_tag.tag, '. $weightexpr . ' as weight ' . 'FROM notice_tag JOIN notice ' . 'ON notice_tag.notice_id = notice.id ' . @@ -83,10 +78,8 @@ class PersonalTagCloudSection extends TagCloudSection $tag = Memcached_DataObject::cachedQuery('Notice_tag', sprintf($qry, - common_config('tag', 'dropoff'), - $this->user->id), + $this->profile->getID()), 3600); return $tag; } - }