aboutsummaryrefslogtreecommitdiff
path: root/app/Models
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-12-25 20:58:38 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-12-25 20:58:38 +0100
commit7b4451912e2a9008a49854a2496cf9bb99b7ed10 (patch)
tree99b6c2173bb0b8a528050aac6fab4e633f6be355 /app/Models
parent318954dfbd64f7a29203cdb25a95400dea0cec0d (diff)
parent7eda2793bbc3210ae37aa66511fd7ad7661c2149 (diff)
Merge remote-tracking branch 'origin/dev' into beta
Diffstat (limited to 'app/Models')
-rw-r--r--app/Models/Configuration.php14
-rw-r--r--app/Models/ConfigurationDAO.php8
-rw-r--r--app/Models/EntryDAO.php8
-rw-r--r--app/Models/Feed.php23
-rw-r--r--app/Models/FeedDAO.php33
5 files changed, 51 insertions, 35 deletions
diff --git a/app/Models/Configuration.php b/app/Models/Configuration.php
index d5f69601f..47509636f 100644
--- a/app/Models/Configuration.php
+++ b/app/Models/Configuration.php
@@ -14,6 +14,7 @@ class FreshRSS_Configuration extends Minz_Model {
private $lazyload;
private $sort_order;
private $old_entries;
+ private $keep_history_default;
private $shortcuts = array ();
private $mail_login = '';
private $mark_when = array ();
@@ -44,6 +45,7 @@ class FreshRSS_Configuration extends Minz_Model {
$this->_lazyload ($confDAO->lazyload);
$this->_sortOrder ($confDAO->sort_order);
$this->_oldEntries ($confDAO->old_entries);
+ $this->_keepHistoryDefault($confDAO->keep_history_default);
$this->_shortcuts ($confDAO->shortcuts);
$this->_mailLogin ($confDAO->mail_login);
$this->_markWhen ($confDAO->mark_when);
@@ -95,6 +97,9 @@ class FreshRSS_Configuration extends Minz_Model {
public function oldEntries () {
return $this->old_entries;
}
+ public function keepHistoryDefault() {
+ return $this->keep_history_default;
+ }
public function shortcuts () {
return $this->shortcuts;
}
@@ -217,11 +222,18 @@ class FreshRSS_Configuration extends Minz_Model {
}
public function _oldEntries ($value) {
if (ctype_digit ($value) && $value > 0) {
- $this->old_entries = $value;
+ $this->old_entries = intval($value);
} else {
$this->old_entries = 3;
}
}
+ public function _keepHistoryDefault($value) {
+ if (ctype_digit($value) && $value >= -1) {
+ $this->keep_history_default = intval($value);
+ } else {
+ $this->keep_history_default = 0;
+ }
+ }
public function _shortcuts ($values) {
foreach ($values as $key => $value) {
$this->shortcuts[$key] = $value;
diff --git a/app/Models/ConfigurationDAO.php b/app/Models/ConfigurationDAO.php
index 0eebf2d90..91210e701 100644
--- a/app/Models/ConfigurationDAO.php
+++ b/app/Models/ConfigurationDAO.php
@@ -10,6 +10,7 @@ class FreshRSS_ConfigurationDAO extends Minz_ModelArray {
public $lazyload = 'yes';
public $sort_order = 'DESC';
public $old_entries = 3;
+ public $keep_history_default = 0;
public $shortcuts = array (
'mark_read' => 'r',
'mark_favorite' => 'f',
@@ -62,7 +63,7 @@ class FreshRSS_ConfigurationDAO extends Minz_ModelArray {
$this->language = $this->array['language'];
}
if (isset ($this->array['posts_per_page'])) {
- $this->posts_per_page = $this->array['posts_per_page'];
+ $this->posts_per_page = intval($this->array['posts_per_page']);
}
if (isset ($this->array['view_mode'])) {
$this->view_mode = $this->array['view_mode'];
@@ -83,7 +84,10 @@ class FreshRSS_ConfigurationDAO extends Minz_ModelArray {
$this->sort_order = $this->array['sort_order'];
}
if (isset ($this->array['old_entries'])) {
- $this->old_entries = $this->array['old_entries'];
+ $this->old_entries = intval($this->array['old_entries']);
+ }
+ if (isset ($this->array['keep_history_default'])) {
+ $this->keep_history_default = intval($this->array['keep_history_default']);
}
if (isset ($this->array['shortcuts'])) {
$this->shortcuts = array_merge (
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index c6bd5c404..99aaf3a0d 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -260,7 +260,7 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo {
return isset ($entries[0]) ? $entries[0] : false;
}
- public function listWhere($type = 'a', $id = '', $state = 'all', $order = 'DESC', $limit = 1, $firstId = '', $filter = '', $date_min = 0) {
+ public function listWhere($type = 'a', $id = '', $state = 'all', $order = 'DESC', $limit = 1, $firstId = '', $filter = '', $date_min = 0, $keepHistoryDefault = 0) {
$where = '';
$joinFeed = false;
$values = array();
@@ -307,7 +307,11 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo {
$where .= 'AND e1.id ' . ($order === 'DESC' ? '<=' : '>=') . $firstId . ' ';
}
if (($date_min > 0) && ($type !== 's')) {
- $where .= 'AND (e1.id >= ' . $date_min . '000000 OR e1.is_favorite = 1 OR f.keep_history = 1) ';
+ $where .= 'AND (e1.id >= ' . $date_min . '000000 OR e1.is_read = 0 OR e1.is_favorite = 1 OR (f.keep_history <> 0';
+ if (intval($keepHistoryDefault) === 0) {
+ $where .= ' AND f.keep_history <> -2'; //default
+ }
+ $where .= ')) ';
$joinFeed = true;
}
$search = '';
diff --git a/app/Models/Feed.php b/app/Models/Feed.php
index 70efb0fa3..dcf97d4ec 100644
--- a/app/Models/Feed.php
+++ b/app/Models/Feed.php
@@ -15,7 +15,7 @@ class FreshRSS_Feed extends Minz_Model {
private $pathEntries = '';
private $httpAuth = '';
private $error = false;
- private $keep_history = false;
+ private $keep_history = -2;
public function __construct ($url, $validate=true) {
if ($validate) {
@@ -163,19 +163,12 @@ class FreshRSS_Feed extends Minz_Model {
$this->httpAuth = $value;
}
public function _error ($value) {
- if ($value) {
- $value = true;
- } else {
- $value = false;
- }
- $this->error = $value;
+ $this->error = (bool)$value;
}
public function _keepHistory ($value) {
- if ($value) {
- $value = true;
- } else {
- $value = false;
- }
+ $value = intval($value);
+ $value = min($value, 1000000);
+ $value = max($value, -2);
$this->keep_history = $value;
}
public function _nbNotRead ($value) {
@@ -257,11 +250,11 @@ class FreshRSS_Feed extends Minz_Model {
$this->_url ($subscribe_url);
}
- $title = $feed->get_title ();
+ $title = htmlspecialchars(html_only_entity_decode($feed->get_title()), ENT_COMPAT, 'UTF-8');
$this->_name (!is_null ($title) ? $title : $this->url);
- $this->_website ($feed->get_link ());
- $this->_description ($feed->get_description ());
+ $this->_website(html_only_entity_decode($feed->get_link()));
+ $this->_description(html_only_entity_decode($feed->get_description()));
// et on charge les articles du flux
$this->loadEntries ($feed);
diff --git a/app/Models/FeedDAO.php b/app/Models/FeedDAO.php
index 9bd480544..d517f9580 100644
--- a/app/Models/FeedDAO.php
+++ b/app/Models/FeedDAO.php
@@ -2,7 +2,7 @@
class FreshRSS_FeedDAO extends Minz_ModelPdo {
public function addFeed ($valuesTmp) {
- $sql = 'INSERT INTO `' . $this->prefix . 'feed` (url, category, name, website, description, lastUpdate, priority, httpAuth, error, keep_history) VALUES(?, ?, ?, ?, ?, ?, 10, ?, 0, 0)';
+ $sql = 'INSERT INTO `' . $this->prefix . 'feed` (url, category, name, website, description, lastUpdate, priority, httpAuth, error, keep_history) VALUES(?, ?, ?, ?, ?, ?, 10, ?, 0, -2)';
$stm = $this->bd->prepare ($sql);
$values = array (
@@ -193,7 +193,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo {
}
public function listFeedsOrderUpdate () {
- $sql = 'SELECT * FROM `' . $this->prefix . 'feed` ORDER BY lastUpdate';
+ $sql = 'SELECT id, name, url, pathEntries, httpAuth, keep_history FROM `' . $this->prefix . 'feed` ORDER BY lastUpdate';
$stm = $this->bd->prepare ($sql);
$stm->execute ();
@@ -315,20 +315,23 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo {
if (isset ($dao['id'])) {
$key = $dao['id'];
}
+ if ($catID === null) {
+ $catID = isset($dao['category']) ? $dao['category'] : 0;
+ }
- $myFeed = new FreshRSS_Feed (isset($dao['url']) ? $dao['url'] : '', false);
- $myFeed->_category ($catID === null ? $dao['category'] : $catID);
- $myFeed->_name ($dao['name']);
- $myFeed->_website ($dao['website'], false);
- $myFeed->_description (isset($dao['description']) ? $dao['description'] : '');
- $myFeed->_lastUpdate (isset($dao['lastUpdate']) ? $dao['lastUpdate'] : 0);
- $myFeed->_priority ($dao['priority']);
- $myFeed->_pathEntries (isset($dao['pathEntries']) ? $dao['pathEntries'] : '');
- $myFeed->_httpAuth (isset($dao['httpAuth']) ? base64_decode ($dao['httpAuth']) : '');
- $myFeed->_error ($dao['error']);
- $myFeed->_keepHistory (isset($dao['keep_history']) ? $dao['keep_history'] : '');
- $myFeed->_nbNotRead ($dao['cache_nbUnreads']);
- $myFeed->_nbEntries ($dao['cache_nbEntries']);
+ $myFeed = new FreshRSS_Feed(isset($dao['url']) ? $dao['url'] : '', false);
+ $myFeed->_category(intval($catID));
+ $myFeed->_name($dao['name']);
+ $myFeed->_website(isset($dao['website']) ? $dao['website'] : '', false);
+ $myFeed->_description(isset($dao['description']) ? $dao['description'] : '');
+ $myFeed->_lastUpdate(isset($dao['lastUpdate']) ? $dao['lastUpdate'] : 0);
+ $myFeed->_priority(isset($dao['priority']) ? $dao['priority'] : 10);
+ $myFeed->_pathEntries(isset($dao['pathEntries']) ? $dao['pathEntries'] : '');
+ $myFeed->_httpAuth(isset($dao['httpAuth']) ? base64_decode ($dao['httpAuth']) : '');
+ $myFeed->_error(isset($dao['error']) ? $dao['error'] : 0);
+ $myFeed->_keepHistory(isset($dao['keep_history']) ? $dao['keep_history'] : -2);
+ $myFeed->_nbNotRead(isset($dao['cache_nbUnreads']) ? $dao['cache_nbUnreads'] : 0);
+ $myFeed->_nbEntries(isset($dao['cache_nbEntries']) ? $dao['cache_nbEntries'] : 0);
if (isset ($dao['id'])) {
$myFeed->_id ($dao['id']);
}