X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fpopularnoticesection.php;h=375d5538be72ebfa2aa02922a3164f81101f29f8;hb=fcb43dd7112740284d2c1cb2708ac6a8a135cbdb;hp=f7fb935543a761c3d98f448fae6fd6360e14df44;hpb=77e4fad9fac63151c3eee0c3c785c8cf2fa356fb;p=quix0rs-gnu-social.git diff --git a/lib/popularnoticesection.php b/lib/popularnoticesection.php index f7fb935543..375d5538be 100644 --- a/lib/popularnoticesection.php +++ b/lib/popularnoticesection.php @@ -50,15 +50,26 @@ class PopularNoticeSection extends NoticeSection { 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.id, '. - $weightexpr . ' as weight ' . - 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - 'GROUP BY notice.id ' . - 'ORDER BY weight DESC'; + $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'; + } + $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 ' . + 'ORDER BY weight DESC'; $offset = 0; $limit = NOTICES_PER_SECTION + 1;