X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fpublictagcloud.php;h=6d0d4237e9d74ce1788863f43eeb9ed14603d96c;hb=261ccfac8699534ff584a2f93d5dcd384529d855;hp=5c707402905df7dcd0f9665950384849440992b0;hpb=e3466ab51cf68bd62ecd914a3771ed33de824e52;p=quix0rs-gnu-social.git diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index 5c70740290..6d0d4237e9 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -44,34 +44,46 @@ define('TAGS_PER_PAGE', 100); * @copyright 2008-2009 StatusNet, Inc. * @link http://status.net/ */ - class PublictagcloudAction extends Action { - function isReadOnly($args) + function isReadOnly(array $args=array()) { return true; } function title() { + // TRANS: Title for public tag cloud. return _('Public tag cloud'); } function showPageNotice() { $this->element('p', 'instructions', - sprintf(_('These are most popular recent tags on %s '), + // TRANS: Instructions (more used like an explanation/header). + // TRANS: %s is the StatusNet sitename. + sprintf(_('These are most popular recent tags on %s'), common_config('site', 'name'))); } function showEmptyList() { + // TRANS: This message contains a Markdown URL. The link description is between + // TRANS: square brackets, and the link between parentheses. Do not separate "](" + // TRANS: and do not change the URL part. $message = _('No one has posted a notice with a [hashtag](%%doc.tags%%) yet.') . ' '; if (common_logged_in()) { + // TRANS: Message shown to a logged in user for the public tag cloud + // TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. $message .= _('Be the first to post one!'); } else { + // TRANS: Message shown to a anonymous user for the public tag cloud + // TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. + // TRANS: This message contains a Markdown URL. The link description is between + // TRANS: square brackets, and the link between parentheses. Do not separate "](" + // TRANS: and do not change the URL part. $message .= _('Why not [register an account](%%action.register%%) and be the first to post one!'); } @@ -80,13 +92,7 @@ class PublictagcloudAction extends Action $this->elementEnd('div'); } - function showLocalNav() - { - $nav = new PublicGroupNav($this); - $nav->show(); - } - - function handle($args) + function handle(array $args=array()) { parent::handle($args); $this->showPage(); @@ -94,23 +100,24 @@ class PublictagcloudAction extends Action function showContent() { - # This should probably be cached rather than recalculated + // This should probably be cached rather than recalculated $tags = new Notice_tag(); - #Need to clear the selection and then only re-add the field - #we are grouping by, otherwise it's not a valid 'group by' - #even though MySQL seems to let it slide... + /* + * Need to clear the selection and then only re-add the field + * we are grouping by, otherwise it's not a valid 'group by' + * even though MySQL seems to let it slide... + */ $tags->selectAdd(); $tags->selectAdd('tag'); - #Add the aggregated columns... + // Add the aggregated columns... $tags->selectAdd('max(notice_id) as last_notice_id'); - if(common_config('db','type')=='pgsql') { - $calc='sum(exp(-extract(epoch from (now()-created))/%s)) as weight'; - } else { - $calc='sum(exp(-(now() - created)/%s)) as weight'; - } - $tags->selectAdd(sprintf($calc, common_config('tag', 'dropoff'))); + $calc = common_sql_weight('created', common_config('tag', 'dropoff')); + $cutoff = sprintf("notice_tag.created > '%s'", + common_sql_date(time() - common_config('tag', 'cutoff'))); + $tags->selectAdd($calc . ' as weight'); + $tags->whereAdd($cutoff); $tags->groupBy('tag'); $tags->orderBy('weight DESC'); @@ -131,21 +138,17 @@ class PublictagcloudAction extends Action ksort($tw); - $this->elementStart('dl'); - $this->element('dt', null, _('Tag cloud')); - $this->elementStart('dd'); $this->elementStart('ul', 'tags xoxo tag-cloud'); foreach ($tw as $tag => $weight) { if ($sum) { $weightedSum = $weight/$sum; } else { - $weightedSum = 1; + $weightedSum = 0.5; } $this->showTag($tag, $weight, $weightedSum); } $this->elementEnd('ul'); - $this->elementEnd('dd'); - $this->elementEnd('dl'); + $this->elementEnd('div'); } else { $this->showEmptyList();