summaryrefslogtreecommitdiff
path: root/app/models
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/models
parent61943f1661383bf8017b4c2a76fd11618e4adae0 (diff)
Fix issue #37 : possibilité de sortir un site du flux principal (utile pour les sites qui publient beaucoup)
Diffstat (limited to 'app/models')
-rwxr-xr-xapp/models/Entry.php23
-rw-r--r--app/models/Feed.php11
2 files changed, 21 insertions, 13 deletions
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']);