*/
class PublictagcloudAction extends Action
{
- function isReadOnly($args)
+ function isReadOnly(array $args=array())
{
return true;
}
$this->elementEnd('div');
}
- function handle($args)
+ function handle(array $args=array())
{
parent::handle($args);
$this->showPage();
// 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');
+ $tags->selectAdd('notice_id');
+ $tags->selectAdd('scope');
- #Add the aggregated columns...
+ // Add the aggregated columns...
$tags->selectAdd('max(notice_id) as last_notice_id');
$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->joinAdd(array('notice_id', 'notice:id'));
$tags->whereAdd($cutoff);
$tags->groupBy('tag');
$tags->orderBy('weight DESC');
$tw = array();
$sum = 0;
while ($tags->fetch()) {
- $tw[$tags->tag] = $tags->weight;
- $sum += $tags->weight;
+ // Check scope:
+ if ($tags->isCurrentProfileInScope()) {
+ $tw[$tags->tag] = $tags->weight;
+ $sum += $tags->weight;
+ }
}
ksort($tw);