aboutsummaryrefslogtreecommitdiff
path: root/app/Models
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2015-05-09 13:07:54 +0200
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2015-05-09 13:07:54 +0200
commit7f7de31c1dcb6599be5c5713f36b4bde1d03d47a (patch)
tree4f9da11cb30a4835172e55a86c91073a6d2a44c3 /app/Models
parent711530a512b370d79b079205ce1f8376174f7f03 (diff)
SQL: update request for updated articles
https://github.com/FreshRSS/FreshRSS/issues/798
Diffstat (limited to 'app/Models')
-rw-r--r--app/Models/Entry.php4
-rw-r--r--app/Models/EntryDAO.php16
2 files changed, 15 insertions, 5 deletions
diff --git a/app/Models/Entry.php b/app/Models/Entry.php
index 6931c9f25..a562a963a 100644
--- a/app/Models/Entry.php
+++ b/app/Models/Entry.php
@@ -15,7 +15,7 @@ class FreshRSS_Entry extends Minz_Model {
private $link;
private $date;
private $hash = null;
- private $is_read;
+ private $is_read; //Nullable boolean
private $is_favorite;
private $feed;
private $tags;
@@ -125,7 +125,7 @@ class FreshRSS_Entry extends Minz_Model {
$this->date = $value > 1 ? $value : time();
}
public function _isRead($value) {
- $this->is_read = $value;
+ $this->is_read = $value === null ? null : (bool)$value;
}
public function _isFavorite($value) {
$this->is_favorite = $value;
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index 5b4b85547..543b61573 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -91,11 +91,17 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
private $updateEntryPrepared = null;
public function updateEntry($valuesTmp) {
+ if (!isset($valuesTmp['is_read'])) {
+ $valuesTmp['is_read'] = null;
+ }
+
if ($this->updateEntryPrepared === null) {
$sql = 'UPDATE `' . $this->prefix . 'entry` '
. 'SET title=?, author=?, '
. ($this->isCompressed() ? 'content_bin=COMPRESS(?)' : 'content=?')
- . ', link=?, date=?, lastSeen=?, hash=X?, is_read=?, tags=? '
+ . ', link=?, date=?, lastSeen=?, hash=X?, '
+ . ($valuesTmp['is_read'] === null ? '' : 'is_read=?, ')
+ . 'tags=? '
. 'WHERE id_feed=? AND guid=?';
$this->updateEntryPrepared = $this->bd->prepare($sql);
}
@@ -108,11 +114,15 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
$valuesTmp['date'],
time(),
$valuesTmp['hash'],
- $valuesTmp['is_read'] ? 1 : 0,
+ );
+ if ($valuesTmp['is_read'] !== null) {
+ $values[] = $valuesTmp['is_read'] ? 1 : 0;
+ }
+ $values = array_merge($values, array(
substr($valuesTmp['tags'], 0, 1023),
$valuesTmp['id_feed'],
substr($valuesTmp['guid'], 0, 760),
- );
+ ));
if ($this->updateEntryPrepared && $this->updateEntryPrepared->execute($values)) {
return $this->bd->lastInsertId();