summaryrefslogtreecommitdiff
path: root/classes/article.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-12-07 23:35:37 +0300
committerAndrew Dolgov <[email protected]>2020-12-07 23:35:37 +0300
commit85b788709a9f7a93645f7aab1675b99d57874d0b (patch)
treed3552d609e6c7f72b7fe8d1b520e3c197def5027 /classes/article.php
parent0e4e0e624e7e46ba066fdd9a7dbb83409cfa3d44 (diff)
setArticleTags: prevent duplicate tags being assigned if called twice
editTagsDlg: prevent dialot from being submitted twice normalize_categories: filter out empty values that failed validation
Diffstat (limited to 'classes/article.php')
-rwxr-xr-xclasses/article.php21
1 files changed, 13 insertions, 8 deletions
diff --git a/classes/article.php b/classes/article.php
index 5b699a103..2c691f770 100755
--- a/classes/article.php
+++ b/classes/article.php
@@ -179,7 +179,7 @@ class Article extends Handler_Protected {
print "<footer>";
print "<button dojoType='dijit.form.Button'
- type='submit' class='alt-primary' onclick=\"dijit.byId('editTagsDlg').execute()\">".__('Save')."</button> ";
+ type='submit' class='alt-primary'>".__('Save')."</button> ";
print "<button dojoType='dijit.form.Button'
onclick=\"dijit.byId('editTagsDlg').hide()\">".__('Cancel')."</button>";
print "</footer>";
@@ -232,19 +232,24 @@ class Article extends Handler_Protected {
$int_id = $row['int_id'];
- $sth = $this->pdo->prepare("DELETE FROM ttrss_tags WHERE
+ $dsth = $this->pdo->prepare("DELETE FROM ttrss_tags WHERE
post_int_id = ? AND owner_uid = ?");
- $sth->execute([$int_id, $_SESSION['uid']]);
+ $dsth->execute([$int_id, $_SESSION['uid']]);
+
+ $csth = $this->pdo->prepare("SELECT post_int_id FROM ttrss_tags
+ WHERE post_int_id = ? AND owner_uid = ? AND tag_name = ?");
+
+ $usth = $this->pdo->prepare("INSERT INTO ttrss_tags
+ (post_int_id, owner_uid, tag_name)
+ VALUES (?, ?, ?)");
$tags = FeedItem_Common::normalize_categories($tags);
foreach ($tags as $tag) {
- if ($tag != '') {
- $sth = $this->pdo->prepare("INSERT INTO ttrss_tags
- (post_int_id, owner_uid, tag_name)
- VALUES (?, ?, ?)");
+ $csth->execute([$int_id, $_SESSION['uid'], $tag]);
- $sth->execute([$int_id, $_SESSION['uid'], $tag]);
+ if (!$csth->fetch()) {
+ $usth->execute([$int_id, $_SESSION['uid'], $tag]);
}
array_push($tags_to_cache, $tag);