mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-02-19 23:36:54 -05:00
Expérimentation : classement par date d'ajout dans la base plutôt que selon la date déclarée par le flux (qui est parfois fausse dans le passé, dans le futur, ou absente). Quelques conséquences : * Les flux avec des dates erronées ne sont plus un problème * Lorsqu'on fait "marquer tout comme lu", les articles arrivés pendant la lecture ne sont plus indûment marqués comme lus * Les articles ont tendance à être plus regroupés par flux lorsqu'on les affiche par catégorie * Si un utilisateur n'utilise pas de cron et n'utilise pas FreshRSS pendant plusieurs jours, lors du rafraîchissement, les nouveaux articles seront dans "Aujourd'hui" (à interpréter donc comme les articles reçus aujourd'hui, et non comme déclarés comme étant publiés aujourd'hui) * La pagination est plus efficace Termine l'implémentation de https://github.com/marienfressinaud/FreshRSS/issues/202
101 lines
2.3 KiB
PHP
Executable File
101 lines
2.3 KiB
PHP
Executable File
<?php
|
|
|
|
class entryController extends ActionController {
|
|
public function firstAction () {
|
|
if (login_is_conf ($this->view->conf) && !is_logged ()) {
|
|
Error::error (
|
|
403,
|
|
array ('error' => array (Translate::t ('access_denied')))
|
|
);
|
|
}
|
|
|
|
$this->params = array ();
|
|
$this->redirect = false;
|
|
$ajax = Request::param ('ajax');
|
|
if ($ajax) {
|
|
$this->view->_useLayout (false);
|
|
}
|
|
}
|
|
public function lastAction () {
|
|
$ajax = Request::param ('ajax');
|
|
if (!$ajax && $this->redirect) {
|
|
Request::forward (array (
|
|
'c' => 'index',
|
|
'a' => 'index',
|
|
'params' => $this->params
|
|
), true);
|
|
} else {
|
|
Request::_param ('ajax');
|
|
}
|
|
}
|
|
|
|
public function readAction () {
|
|
$this->redirect = true;
|
|
|
|
$id = Request::param ('id');
|
|
$is_read = Request::param ('is_read');
|
|
$get = Request::param ('get');
|
|
$nextGet = Request::param ('nextGet', $get);
|
|
$idMax = Request::param ('idMax', 0);
|
|
|
|
$is_read = !!$is_read;
|
|
|
|
$entryDAO = new EntryDAO ();
|
|
if ($id == false) {
|
|
if (!$get) {
|
|
$entryDAO->markReadEntries ($idMax);
|
|
} else {
|
|
$typeGet = $get[0];
|
|
$get = substr ($get, 2);
|
|
|
|
if ($typeGet == 'c') {
|
|
$entryDAO->markReadCat ($get, $idMax);
|
|
$this->params = array ('get' => $nextGet);
|
|
} elseif ($typeGet == 'f') {
|
|
$entryDAO->markReadFeed ($get, $idMax);
|
|
$this->params = array ('get' => $nextGet);
|
|
}
|
|
}
|
|
|
|
$notif = array (
|
|
'type' => 'good',
|
|
'content' => Translate::t ('feeds_marked_read')
|
|
);
|
|
Session::_param ('notification', $notif);
|
|
} else {
|
|
$entryDAO->markRead ($id, $is_read);
|
|
}
|
|
}
|
|
|
|
public function bookmarkAction () {
|
|
$this->redirect = true;
|
|
|
|
$id = Request::param ('id');
|
|
if ($id) {
|
|
$entryDAO = new EntryDAO ();
|
|
$entryDAO->markFavorite ($id, Request::param ('is_favorite'));
|
|
}
|
|
}
|
|
|
|
public function optimizeAction() {
|
|
// La table des entrées a tendance à grossir énormément
|
|
// Cette action permet d'optimiser cette table permettant de grapiller un peu de place
|
|
// Cette fonctionnalité n'est à appeler qu'occasionnellement
|
|
$entryDAO = new EntryDAO();
|
|
$entryDAO->optimizeTable();
|
|
|
|
touch(DATA_PATH . '/touch.txt');
|
|
|
|
$notif = array (
|
|
'type' => 'good',
|
|
'content' => Translate::t ('optimization_complete')
|
|
);
|
|
Session::_param ('notification', $notif);
|
|
|
|
Request::forward(array(
|
|
'c' => 'configure',
|
|
'a' => 'display'
|
|
), true);
|
|
}
|
|
}
|