From c0f2df3ef0de33e9b07269f6db887c373e45192e Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 12 Jun 2018 21:11:43 +0200 Subject: Fever fixes (#1931) * Fever fixes Was hardcoded for MySQL. Bug in "before" parameter. Bug in mark all as read. * Fix construct * Changelog 1930 https://github.com/FreshRSS/FreshRSS/issues/193 https://github.com/FreshRSS/FreshRSS/pull/1931 --- app/Models/EntryDAO.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'app/Models/EntryDAO.php') diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php index a3bca3727..59f826c3e 100644 --- a/app/Models/EntryDAO.php +++ b/app/Models/EntryDAO.php @@ -904,8 +904,8 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable { } public function countUnreadRead() { - $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id WHERE priority > 0' - . ' UNION SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id WHERE priority > 0 AND is_read=0'; + $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id WHERE f.priority > 0' + . ' UNION SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id WHERE f.priority > 0 AND e.is_read=0'; $stm = $this->bd->prepare($sql); $stm->execute(); $res = $stm->fetchAll(PDO::FETCH_COLUMN, 0); @@ -914,9 +914,10 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable { return array('all' => $all, 'unread' => $unread, 'read' => $all - $unread); } public function count($minPriority = null) { - $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id'; + $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e'; if ($minPriority !== null) { - $sql = ' WHERE priority > ' . intval($minPriority); + $sql .= ' INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id'; + $sql .= ' WHERE f.priority > ' . intval($minPriority); } $stm = $this->bd->prepare($sql); $stm->execute(); @@ -924,9 +925,13 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable { return $res[0]; } public function countNotRead($minPriority = null) { - $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id WHERE is_read=0'; + $sql = 'SELECT COUNT(e.id) AS count FROM `' . $this->prefix . 'entry` e'; if ($minPriority !== null) { - $sql = ' AND priority > ' . intval($minPriority); + $sql .= ' INNER JOIN `' . $this->prefix . 'feed` f ON e.id_feed=f.id'; + } + $sql .= ' WHERE e.is_read=0'; + if ($minPriority !== null) { + $sql .= ' AND f.priority > ' . intval($minPriority); } $stm = $this->bd->prepare($sql); $stm->execute(); -- cgit v1.2.3