summaryrefslogtreecommitdiff
path: root/app/controllers/entryController.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-11-16 21:03:25 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-11-16 21:03:25 +0100
commit32306a78d2e53bbbc864f3eabda9a2f1a3dd2322 (patch)
tree8d3ee43aa98981ebeada93d31930c1b91fae9395 /app/controllers/entryController.php
parent770ea63258d9cb138e86d7545b2bccc046666f95 (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-xapp/controllers/entryController.php14
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'));
}
}