diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/EntriesGetter.php | 12 | ||||
| -rwxr-xr-x | app/models/Entry.php | 12 |
2 files changed, 13 insertions, 11 deletions
diff --git a/app/models/EntriesGetter.php b/app/models/EntriesGetter.php index dc7ecca7c..803aad732 100644 --- a/app/models/EntriesGetter.php +++ b/app/models/EntriesGetter.php @@ -98,13 +98,15 @@ class EntriesGetter { HelperEntry::$first = $this->first; //TODO: Update: Now done in SQL HelperEntry::$filter = $this->filter; + $sqlLimit = (empty ($this->filter['words']) && empty ($this->filter['tags'])) ? $this->nb : ''; //Disable SQL LIMIT optimisation during search //TODO: Do better! + switch ($this->type['type']) { case 'all': list ($this->entries, $this->next) = $entryDAO->listEntries ( $this->state, $this->order, $this->first, - $this->nb + $sqlLimit ); break; case 'favoris': @@ -112,7 +114,7 @@ class EntriesGetter { $this->state, $this->order, $this->first, - $this->nb + $sqlLimit ); break; case 'public': @@ -120,7 +122,7 @@ class EntriesGetter { $this->state, $this->order, $this->first, - $this->nb + $sqlLimit ); break; case 'c': @@ -129,7 +131,7 @@ class EntriesGetter { $this->state, $this->order, $this->first, - $this->nb + $sqlLimit ); break; case 'f': @@ -138,7 +140,7 @@ class EntriesGetter { $this->state, $this->order, $this->first, - $this->nb + $sqlLimit ); break; default: diff --git a/app/models/Entry.php b/app/models/Entry.php index 4043e8f01..53f09b9c9 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -396,7 +396,7 @@ class EntryDAO extends Model_pdo { . ' ORDER BY date' . $order . ', id' . $order; if (!empty($limitCount)) { - $sql .= ' LIMIT ' . $limitCount; //TODO: See http://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/ + $sql .= ' LIMIT ' . ($limitCount + 1); //TODO: See http://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/ } $stm = $this->bd->prepare ($sql); @@ -405,19 +405,19 @@ class EntryDAO extends Model_pdo { return HelperEntry::daoToEntry ($stm->fetchAll (PDO::FETCH_ASSOC)); } public function listEntries ($state, $order = 'high_to_low', $limitFromId = '', $limitCount = '') { - return $this->listWhere (' WHERE priority > 0', $state, $order, $limitFromId, $limitCount + 1); + return $this->listWhere (' WHERE priority > 0', $state, $order, $limitFromId, $limitCount); } public function listFavorites ($state, $order = 'high_to_low', $limitFromId = '', $limitCount = '') { - return $this->listWhere (' WHERE is_favorite = 1', $state, $order, $limitFromId, $limitCount + 1); + return $this->listWhere (' WHERE is_favorite = 1', $state, $order, $limitFromId, $limitCount); } public function listPublic ($state, $order = 'high_to_low', $limitFromId = '', $limitCount = '') { - return $this->listWhere (' WHERE is_public = 1', $state, $order, $limitFromId, $limitCount + 1); + return $this->listWhere (' WHERE is_public = 1', $state, $order, $limitFromId, $limitCount); } public function listByCategory ($cat, $state, $order = 'high_to_low', $limitFromId = '', $limitCount = '') { - return $this->listWhere (' WHERE category = ?', $state, $order, $limitFromId, $limitCount + 1, array ($cat)); + return $this->listWhere (' WHERE category = ?', $state, $order, $limitFromId, $limitCount, array ($cat)); } public function listByFeed ($feed, $state, $order = 'high_to_low', $limitFromId = '', $limitCount = '') { - return $this->listWhere (' WHERE id_feed = ?', $state, $order, $limitFromId, $limitCount + 1, array ($feed)); + return $this->listWhere (' WHERE id_feed = ?', $state, $order, $limitFromId, $limitCount, array ($feed)); } public function countUnreadRead () { |
