]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/publictagcloud.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / actions / publictagcloud.php
index 1432ca66a89781821f8d899f44be308c2fa6a78b..8daf18d5042bd8b4dbe2653f6b3a8edb7f551b00 100644 (file)
@@ -46,7 +46,7 @@ define('TAGS_PER_PAGE', 100);
  */
 class PublictagcloudAction extends Action
 {
-    function isReadOnly($args)
+    function isReadOnly(array $args=array())
     {
         return true;
     }
@@ -92,7 +92,7 @@ class PublictagcloudAction extends Action
         $this->elementEnd('div');
     }
 
-    function handle($args)
+    function handle(array $args=array())
     {
         parent::handle($args);
         $this->showPage();
@@ -100,21 +100,26 @@ 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');
+        $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');
@@ -130,8 +135,11 @@ class PublictagcloudAction extends Action
             $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);