summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-10 11:08:33 +0300
committerAndrew Dolgov <[email protected]>2010-11-10 11:08:33 +0300
commit779560b7a388408d032ca42f8828cb5242244b53 (patch)
tree1312f14f8f1b2a5355ca3781a30fba0715282950
parent5eeb387497a6a35115d41a20a9a9f8f82531975b (diff)
fix tag caching issues
-rw-r--r--functions.php39
-rw-r--r--modules/backend-rpc.php17
2 files changed, 35 insertions, 21 deletions
diff --git a/functions.php b/functions.php
index 3e8cb8205..09efbd332 100644
--- a/functions.php
+++ b/functions.php
@@ -1396,6 +1396,7 @@
'BLACKLISTED_TAGS', $owner_uid, ''), 'utf-8')));
$filtered_tags = array();
+ $tags_to_cache = array();
if ($entry_tags && is_array($entry_tags)) {
foreach ($entry_tags as $tag) {
@@ -1405,6 +1406,8 @@
}
}
+ $filtered_tags = array_unique($filtered_tags);
+
if (defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug']) {
_debug("update_rss_feed: filtered article tags:");
print_r($filtered_tags);
@@ -1416,32 +1419,36 @@
db_query($link, "BEGIN");
- foreach ($filtered_tags as $tag) {
+ foreach ($filtered_tags as $tag) {
- $tag = sanitize_tag($tag);
- $tag = db_escape_string($tag);
+ $tag = sanitize_tag($tag);
+ $tag = db_escape_string($tag);
+
+ if (!tag_is_valid($tag)) continue;
+
+ $result = db_query($link, "SELECT id FROM ttrss_tags
+ WHERE tag_name = '$tag' AND post_int_id = '$entry_int_id' AND
+ owner_uid = '$owner_uid' LIMIT 1");
- if (!tag_is_valid($tag)) continue;
-
- $result = db_query($link, "SELECT id FROM ttrss_tags
- WHERE tag_name = '$tag' AND post_int_id = '$entry_int_id' AND
- owner_uid = '$owner_uid' LIMIT 1");
-
if ($result && db_num_rows($result) == 0) {
db_query($link, "INSERT INTO ttrss_tags
(owner_uid,tag_name,post_int_id)
VALUES ('$owner_uid','$tag', '$entry_int_id')");
- }
+ }
- /* update the cache */
+ array_push($tags_to_cache, $tag);
+ }
- $tags_str = db_escape_string(join(",", $filtered_tags));
+ /* update the cache */
+
+ $tags_to_cache = array_unique($tags_to_cache);
+
+ $tags_str = db_escape_string(join(",", $tags_to_cache));
- db_query($link, "UPDATE ttrss_user_entries
- SET tag_cache = '$tags_str' WHERE ref_id = '$entry_ref_id'
- AND owner_uid = $owner_uid");
- }
+ db_query($link, "UPDATE ttrss_user_entries
+ SET tag_cache = '$tags_str' WHERE ref_id = '$entry_ref_id'
+ AND owner_uid = $owner_uid");
db_query($link, "COMMIT");
}
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index a825242c6..047558fc2 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -424,7 +424,6 @@
$tags_str = db_escape_string($_REQUEST["tags_str"]);
$tags = array_unique(trim_array(split(",", $tags_str)));
- $tags_str = db_escape_string(join(",", $tags));
db_query($link, "BEGIN");
@@ -433,6 +432,8 @@
if (db_num_rows($result) == 1) {
+ $tags_to_cache = array();
+
$int_id = db_fetch_result($result, 0, "int_id");
db_query($link, "DELETE FROM ttrss_tags WHERE
@@ -455,12 +456,18 @@
db_query($link, "INSERT INTO ttrss_tags
(post_int_id, owner_uid, tag_name) VALUES ('$int_id', '".$_SESSION["uid"]."', '$tag')");
}
+
+ array_push($tags_to_cache, $tag);
}
- }
- db_query($link, "UPDATE ttrss_user_entries
- SET tag_cache = '$tags_str' WHERE ref_id = '$id'
- AND owner_uid = " . $_SESSION["uid"]);
+ /* update tag cache */
+
+ $tags_str = join(",", $tags_to_cache);
+
+ db_query($link, "UPDATE ttrss_user_entries
+ SET tag_cache = '$tags_str' WHERE ref_id = '$id'
+ AND owner_uid = " . $_SESSION["uid"]);
+ }
db_query($link, "COMMIT");