diff options
| author | 2013-11-16 21:03:25 +0100 | |
|---|---|---|
| committer | 2013-11-16 21:03:25 +0100 | |
| commit | 32306a78d2e53bbbc864f3eabda9a2f1a3dd2322 (patch) | |
| tree | 8d3ee43aa98981ebeada93d31930c1b91fae9395 /app/controllers/entryController.php | |
| parent | 770ea63258d9cb138e86d7545b2bccc046666f95 (diff) | |
SQL : grosse mise à jour avec mise en cache du nombre d'articles lus/non-lus
* Mise en cache du nombre d'articles lus et non-lus par flux, via
`f.cache_nbEntries, f.cache_nbUnreads` pour de biens meilleures
performances
* Implémente https://github.com/marienfressinaud/FreshRSS/issues/268
* Révision de la plupart des requêtes de modification en conséquence
* En cas d'affichage `not_read`, évite de faire une requête si on sait
déjà qu'il n'y a pas d'article non lu et fait directement un affichage
`all`.
* Appelle `cleanOldEntries` seulement une fois de temps en temps
aléatoirement (1 fois sur 30 actuellement) pour économiser les
ressources, et avant les insertions pour plus de robustesse.
* Utilisation des transactions lors de mises à jour multiples et liées
* Lors de requêtes de modifications, retourne le nombre de lignes
impactées plutôt qu'un booléen en cas de succès
* Suppression de code oublié relatif à is_public qui n'est plus utilisé
Diffstat (limited to 'app/controllers/entryController.php')
| -rwxr-xr-x | app/controllers/entryController.php | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/app/controllers/entryController.php b/app/controllers/entryController.php index 1ba9cc3cd..4d2d92c1b 100755 --- a/app/controllers/entryController.php +++ b/app/controllers/entryController.php @@ -43,28 +43,27 @@ class entryController extends ActionController { $entryDAO = new EntryDAO (); if ($id == false) { if (!$get) { - $entryDAO->markReadEntries ($is_read, $dateMax); + $entryDAO->markReadEntries ($dateMax); } else { $typeGet = $get[0]; $get = substr ($get, 2); if ($typeGet == 'c') { - $entryDAO->markReadCat ($get, $is_read, $dateMax); + $entryDAO->markReadCat ($get, $dateMax); $this->params = array ('get' => $nextGet); } elseif ($typeGet == 'f') { - $entryDAO->markReadFeed ($get, $is_read, $dateMax); + $entryDAO->markReadFeed ($get, $dateMax); $this->params = array ('get' => $nextGet); } } - // notif $notif = array ( 'type' => 'good', 'content' => Translate::t ('feeds_marked_read') ); Session::_param ('notification', $notif); } else { - $entryDAO->updateEntry ($id, array ('is_read' => $is_read)); + $entryDAO->markRead ($id, $is_read); } } @@ -74,10 +73,7 @@ class entryController extends ActionController { $id = Request::param ('id'); if ($id) { $entryDAO = new EntryDAO (); - $values = array ( - 'is_favorite' => (bool)(Request::param ('is_favorite')), - ); - $entryDAO->updateEntry ($id, $values); + $entryDAO->markFavorite ($id, Request::param ('is_favorite')); } } |
