]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
cache tag streams in Memcached, too
authorEvan Prodromou <evan@controlyourself.ca>
Sun, 28 Sep 2008 18:09:04 +0000 (14:09 -0400)
committerEvan Prodromou <evan@controlyourself.ca>
Sun, 28 Sep 2008 18:09:04 +0000 (14:09 -0400)
darcs-hash:20080928180904-5ed1f-ebf95f6f04ee4128a1ab2bb9a6a06a946926665d.gz

actions/tag.php
classes/Notice_tag.php

index 52d91d724e690c4c80e78043d406186d2cf058cf..f8fea341acd8286a11e2b1dcfc1a255963ed98ac 100644 (file)
@@ -159,18 +159,8 @@ class TagAction extends StreamAction {
 
        function show_notices($tag) {
 
-               $tags = DB_DataObject::factory('Notice_tag');
-
-               $tags->tag = $tag;
-
-               $tags->orderBy('created DESC');
-
-               $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
-
-               $tags->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
-
-               $cnt = $tags->find();
-
+               $notices = Notice_tag::getStream((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
+               
                if ($cnt > 0) {
                        common_element_start('ul', array('id' => 'notices'));
                        for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) {
index 7f950d946386b85c7185a0a0a519b84c7b01a772..0f4c2f0d5c54bb500fd2ac8ea0859847623eec28 100644 (file)
@@ -1,7 +1,22 @@
 <?php
-/**
- * Table Definition for notice_tag
+/*
+ * Laconica - a distributed open-source microblogging tool
+ * Copyright (C) 2008, Controlez-Vous, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
 
 class Notice_tag extends Memcached_DataObject 
@@ -19,4 +34,15 @@ class Notice_tag extends Memcached_DataObject
 
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
+       
+       static function noticeStream($tag, $offset=0, $limit=20) {
+               $qry = 
+                 'SELECT notice.* ' .
+                 'FROM notice JOIN notice_tag ON notice.id = notice_tag.notice_id ' .
+                 'WHERE notice_tag.tag = "%s"';
+
+               return Notice::getStream(sprintf($qry, $tag),
+                                                                'notice_tag:notice_stream:' . $tag,
+                                                                $offset, $limit);
+       }
 }