diff options
| author | 2013-04-11 21:27:29 +0200 | |
|---|---|---|
| committer | 2013-04-11 21:27:29 +0200 | |
| commit | e2171de4e6b090fbbad07d8852a068ec7ca050c0 (patch) | |
| tree | e47188b3a589099d41125445bedfd39963d94b11 /app | |
| parent | 61943f1661383bf8017b4c2a76fd11618e4adae0 (diff) | |
Fix issue #37 : possibilité de sortir un site du flux principal (utile pour les sites qui publient beaucoup)
Diffstat (limited to 'app')
| -rwxr-xr-x | app/controllers/configureController.php | 4 | ||||
| -rwxr-xr-x | app/controllers/indexController.php | 4 | ||||
| -rwxr-xr-x | app/models/Entry.php | 23 | ||||
| -rw-r--r-- | app/models/Feed.php | 11 | ||||
| -rw-r--r-- | app/views/configure/feed.phtml | 15 |
5 files changed, 35 insertions, 22 deletions
diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index 243c155f9..01ed4d414 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -88,10 +88,12 @@ class configureController extends ActionController { if (Request::isPost () && $this->view->flux) { $cat = Request::param ('category', 0); $path = Request::param ('path_entries', ''); + $priority = Request::param ('priority', 0); $values = array ( 'category' => $cat, - 'pathEntries' => $path + 'pathEntries' => $path, + 'priority' => $priority ); if ($feedDAO->updateFeed ($id, $values)) { diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php index c83f7f1d2..1eba7231f 100755 --- a/app/controllers/indexController.php +++ b/app/controllers/indexController.php @@ -76,9 +76,7 @@ class indexController extends ActionController { try { $this->view->entryPaginator = $entryDAO->getPaginator ($entries); - } catch (CurrentPagePaginationException $e) { - - } + } catch (CurrentPagePaginationException $e) { } $this->view->cat_aside = $catDAO->listCategories (); $this->view->nb_favorites = $entryDAO->countFavorites (); diff --git a/app/models/Entry.php b/app/models/Entry.php index c8d05c5eb..770b27eed 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -272,7 +272,7 @@ class EntryDAO extends Model_pdo { } public function markReadEntries ($read, $dateMax) { - $sql = 'UPDATE entry SET is_read = ? WHERE date < ?'; + $sql = 'UPDATE entry e INNER JOIN feed f ON e.id_feed = f.id SET is_read = ? WHERE date < ? AND priority > 0'; $stm = $this->bd->prepare ($sql); $values = array ($read, $dateMax); @@ -377,19 +377,15 @@ class EntryDAO extends Model_pdo { } public function listEntries ($mode, $search = false, $order = 'high_to_low') { - $where = ''; + $where = ' WHERE priority > 0'; if ($mode == 'not_read') { - $where = ' WHERE is_read=0'; + $where .= ' AND is_read=0'; } $values = array(); if ($search) { $values[] = '%'.$search.'%'; - if ($mode == 'not_read') { - $where = ' AND title LIKE ?'; - } else { - $where = ' WHERE title LIKE ?'; - } + $where .= ' AND title LIKE ?'; } if ($order == 'low_to_high') { @@ -398,7 +394,7 @@ class EntryDAO extends Model_pdo { $order = ''; } - $sql = 'SELECT COUNT(*) AS count FROM entry' . $where; + $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id' . $where; $stm = $this->bd->prepare ($sql); $stm->execute ($values); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -407,7 +403,8 @@ class EntryDAO extends Model_pdo { $deb = ($this->currentPage () - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; - $sql = 'SELECT * FROM entry' . $where + $sql = 'SELECT * FROM entry e' + . ' INNER JOIN feed f ON e.id_feed = f.id' . $where . ' ORDER BY date' . $order . ' LIMIT ' . $deb . ', ' . $fin; $stm = $this->bd->prepare ($sql); @@ -553,7 +550,7 @@ class EntryDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM entry'; + $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE priority > 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -562,11 +559,11 @@ class EntryDAO extends Model_pdo { } public function countNotRead () { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read=0'; + $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE is_read=0 AND priority > 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); - + Log::record ('not read : ' . $res[0]['count'], Log::NOTICE); return $res[0]['count']; } diff --git a/app/models/Feed.php b/app/models/Feed.php index 2e6782921..50632f5a7 100644 --- a/app/models/Feed.php +++ b/app/models/Feed.php @@ -9,6 +9,7 @@ class Feed extends Model { private $website = ''; private $description = ''; private $lastUpdate = 0; + private $priority = 10; private $pathEntries = ''; private $httpAuth = ''; @@ -48,6 +49,9 @@ class Feed extends Model { public function lastUpdate () { return $this->lastUpdate; } + public function priority () { + return $this->priority; + } public function pathEntries () { return $this->pathEntries; } @@ -108,6 +112,12 @@ class Feed extends Model { public function _lastUpdate ($value) { $this->lastUpdate = $value; } + public function _priority ($value) { + if (!is_int (intval ($value))) { + $value = 10; + } + $this->priority = $value; + } public function _pathEntries ($value) { $this->pathEntries = $value; } @@ -382,6 +392,7 @@ class HelperFeed { $list[$key]->_website ($dao['website']); $list[$key]->_description ($dao['description']); $list[$key]->_lastUpdate ($dao['lastUpdate']); + $list[$key]->_priority ($dao['priority']); $list[$key]->_pathEntries ($dao['pathEntries']); $list[$key]->_httpAuth ($dao['httpAuth']); diff --git a/app/views/configure/feed.phtml b/app/views/configure/feed.phtml index 2adc5c839..adea27e52 100644 --- a/app/views/configure/feed.phtml +++ b/app/views/configure/feed.phtml @@ -9,28 +9,25 @@ <form method="post" action="<?php echo _url ('configure', 'feed', 'id', $this->flux->id ()); ?>"> <legend>Informations</legend> - <div class="form-group"> <label class="group-name">URL du site</label> <div class="group-controls"> <span class="control"><a target="_blank" href="<?php echo $this->flux->website (); ?>"><?php echo $this->flux->website (); ?></a></span> </div> </div> - <div class="form-group"> <label class="group-name">URL du flux</label> <div class="group-controls"> <span class="control"><a target="_blank" href="<?php echo $this->flux->url (); ?>"><?php echo $this->flux->url (); ?></a></span> </div> </div> - <div class="form-group"> <label class="group-name">Nombre d'articles</label> <div class="group-controls"> <span class="control"><?php echo $this->flux->nbEntries (); ?></span> </div> </div> - + <legend>Catégorie - <a href="<?php echo _url ('configure', 'categorize'); ?>">gestion</a></legend> <div class="form-group"> <label class="group-name">Ranger dans une catégorie</label> @@ -46,13 +43,21 @@ <legend>Avancé</legend> <div class="form-group"> + <label class="group-name" for="priority">Afficher dans le flux principal</label> + <div class="group-controls"> + <label class="checkbox" for="priority"> + <input type="checkbox" name="priority" id="priority" value="10"<?php echo $this->flux->priority () > 0 ? ' checked="checked"' : ''; ?> /> + Oui + </label> + </div> + </div> + <div class="form-group"> <label class="group-name" for="path_entries">Chemin CSS des articles sur le site d'origine</label> <div class="group-controls"> <input type="text" name="path_entries" id="path_entries" value="<?php echo $this->flux->pathEntries (); ?>" placeholder="Laissez vide pour désactiver" /> <i class="icon i_help"></i> Permet de récupérer les flux tronqués (attention, demande plus de temps !) </div> </div> - <!-- <div class="form-group"> <label class="group-name" for="http_user">Username HTTP</label> |
