summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-04-11 21:27:29 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-04-11 21:27:29 +0200
commite2171de4e6b090fbbad07d8852a068ec7ca050c0 (patch)
treee47188b3a589099d41125445bedfd39963d94b11 /app
parent61943f1661383bf8017b4c2a76fd11618e4adae0 (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-xapp/controllers/configureController.php4
-rwxr-xr-xapp/controllers/indexController.php4
-rwxr-xr-xapp/models/Entry.php23
-rw-r--r--app/models/Feed.php11
-rw-r--r--app/views/configure/feed.phtml15
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>