summaryrefslogtreecommitdiff
path: root/functions.php
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 /functions.php
parent5eeb387497a6a35115d41a20a9a9f8f82531975b (diff)
fix tag caching issues
Diffstat (limited to 'functions.php')
-rw-r--r--functions.php39
1 files changed, 23 insertions, 16 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");
}