X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Ftagnoticestream.php;h=5a99a1aa68a0b30faf7cc6b2ae0f0f371941ce40;hb=f134a423f6a9e7bb61d069c4d6281c05417bbd45;hp=1dcf9f14bb9b4f12e951daad8462783bfafc7f7b;hpb=84984fdbfecdd79630801e2a6ca5b5e9e4b725a1;p=quix0rs-gnu-social.git diff --git a/lib/tagnoticestream.php b/lib/tagnoticestream.php index 1dcf9f14bb..5a99a1aa68 100644 --- a/lib/tagnoticestream.php +++ b/lib/tagnoticestream.php @@ -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); } /** * Stream of notices with a given tag @@ -47,10 +43,11 @@ if (!defined('STATUSNET')) { class TagNoticeStream extends ScopingNoticeStream { - function __construct($tag) + function __construct($tag, Profile $scoped=null) { parent::__construct(new CachingNoticeStream(new RawTagNoticeStream($tag), - 'notice_tag:notice_ids:' . Cache::keyize($tag))); + 'notice_tag:notice_ids:' . Cache::keyize($tag)), + $scoped); } } @@ -86,7 +83,23 @@ class RawTagNoticeStream extends NoticeStream Notice::addWhereSinceId($nt, $since_id, 'notice_id'); Notice::addWhereMaxId($nt, $max_id, 'notice_id'); - $nt->orderBy('created DESC, notice_id DESC'); + if (!empty($this->selectVerbs)) { + $nt->joinAdd(array('notice_id', 'notice:id')); + + $filter = array_keys(array_filter($this->selectVerbs)); + if (!empty($filter)) { + // include verbs in selectVerbs with values that equate to true + $nt->whereAddIn('notice.verb', $filter, 'string'); + } + + $filter = array_keys(array_filter($this->selectVerbs, function ($v) { return !$v; })); + if (!empty($filter)) { + // exclude verbs in selectVerbs with values that equate to false + $nt->whereAddIn('!notice.verb', $filter, 'string'); + } + } + + $nt->orderBy('notice.created DESC, notice_id DESC'); if (!is_null($offset)) { $nt->limit($offset, $limit);