]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/popularnoticesection.php
Merge branch '1.0.x' of git://gitorious.org/statusnet/mainline into 1.0.x
[quix0rs-gnu-social.git] / lib / popularnoticesection.php
index 35b914a50c056303fe02222d3600f1837b7c8196..f6f27c6878e973a6df406520b433200bb3d6f0bc 100644 (file)
@@ -43,47 +43,22 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class PopularNoticeSection extends NoticeSection
 {
     function getNotices()
     {
-        if (common_config('db', 'type') == 'pgsql') {
-            $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))';
-            if (!empty($this->out->tag)) {
-                $tag = pg_escape_string($this->out->tag);
-            }
-        } else {
-            $weightexpr='sum(exp(-(now() - fave.modified) / %s))';
-            if (!empty($this->out->tag)) {
-                 $tag = mysql_escape_string($this->out->tag);
-            }
-        }
-        $qry = "SELECT notice.*, $weightexpr as weight ";
-        if(isset($tag)) {
-            $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' .
-                    "WHERE notice.id = notice_tag.notice_id and '$tag' = notice_tag.tag";
-        } else {
-            $qry .= 'FROM notice JOIN fave ON notice.id = fave.notice_id';
+        $pop = new Popularity();
+        if (!empty($this->out->tag)) {
+            $pop->tag = $this->out->tag;
         }
-        $qry .= ' GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' .
-                'notice.rendered,notice.url,notice.created,notice.modified,' .
-                'notice.reply_to,notice.is_local,notice.source,notice.conversation ' .
-                'ORDER BY weight DESC';
-
-        $offset = 0;
-        $limit  = NOTICES_PER_SECTION + 1;
-
-        $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
-
-        $notice = Memcached_DataObject::cachedQuery('Notice',
-                                                    sprintf($qry, common_config('popular', 'dropoff')),
-                                                    1200);
-        return $notice;
+        $pop->limit = NOTICES_PER_SECTION;
+        $pop->expiry = 1200;
+        return $pop->getNotices();
     }
 
     function title()
     {
+        // TRANS: Title for favourited notices section.
         return _('Popular notices');
     }