X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fconversationnoticestream.php;h=21b2d7f0be59a0561e6ecf1994cfcc7e89a451dd;hb=e2a090c9cc796bc5116972a5e3aae2af9e391993;hp=66075db84f436a62c095174f0036b8231fddf4a5;hpb=19b965d99188fde59cdd39b668df8951bc0f180c;p=quix0rs-gnu-social.git diff --git a/lib/conversationnoticestream.php b/lib/conversationnoticestream.php index 66075db84f..21b2d7f0be 100644 --- a/lib/conversationnoticestream.php +++ b/lib/conversationnoticestream.php @@ -20,7 +20,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * - * @category Cache + * @category NoticeStream * @package StatusNet * @author Evan Prodromou * @copyright 2011 StatusNet, Inc. @@ -28,11 +28,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET')) { - // This check helps protect against security problems; - // your code file can't be executed directly from the web. - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * Notice stream for a conversation @@ -52,8 +48,7 @@ class ConversationNoticeStream extends ScopingNoticeStream $profile = Profile::current(); } - parent::__construct(new CachingNoticeStream(new RawConversationNoticeStream($id), - 'notice:conversation_ids:'.$id), + parent::__construct(new RawConversationNoticeStream($id), $profile); } } @@ -74,35 +69,35 @@ class RawConversationNoticeStream extends NoticeStream function __construct($id) { + parent::__construct(); $this->id = $id; } - function getNoticeIds($offset, $limit, $since_id, $max_id) + function getNoticeIds($offset, $limit, $since_id=null, $max_id=null) { $notice = new Notice(); - - $notice->selectAdd(); // clears it + // SELECT + $notice->selectAdd(); $notice->selectAdd('id'); + // WHERE $notice->conversation = $this->id; - - $notice->orderBy('created DESC, id DESC'); - + if (!empty($since_id)) { + $notice->whereAdd(sprintf('notice.id > %d', $since_id)); + } + if (!empty($max_id)) { + $notice->whereAdd(sprintf('notice.id <= %d', $max_id)); + } if (!is_null($offset)) { $notice->limit($offset, $limit); } - Notice::addWhereSinceId($notice, $since_id); - Notice::addWhereMaxId($notice, $max_id); - - $ids = array(); + self::filterVerbs($notice, $this->selectVerbs); - if ($notice->find()) { - while ($notice->fetch()) { - $ids[] = $notice->id; - } - } - - return $ids; + // ORDER BY + // currently imitates the previously used "_reverseChron" sorting + $notice->orderBy('notice.created DESC'); + $notice->find(); + return $notice->fetchAll('id'); } -} \ No newline at end of file +}