fix tag caching issues

master
Andrew Dolgov 14 years ago
parent 5eeb387497
commit 779560b7a3

@ -1396,6 +1396,7 @@
'BLACKLISTED_TAGS', $owner_uid, ''), 'utf-8'))); 'BLACKLISTED_TAGS', $owner_uid, ''), 'utf-8')));
$filtered_tags = array(); $filtered_tags = array();
$tags_to_cache = array();
if ($entry_tags && is_array($entry_tags)) { if ($entry_tags && is_array($entry_tags)) {
foreach ($entry_tags as $tag) { foreach ($entry_tags as $tag) {
@ -1405,6 +1406,8 @@
} }
} }
$filtered_tags = array_unique($filtered_tags);
if (defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug']) { if (defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug']) {
_debug("update_rss_feed: filtered article tags:"); _debug("update_rss_feed: filtered article tags:");
print_r($filtered_tags); print_r($filtered_tags);
@ -1416,32 +1419,36 @@
db_query($link, "BEGIN"); db_query($link, "BEGIN");
foreach ($filtered_tags as $tag) { foreach ($filtered_tags as $tag) {
$tag = sanitize_tag($tag); $tag = sanitize_tag($tag);
$tag = db_escape_string($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) { if ($result && db_num_rows($result) == 0) {
db_query($link, "INSERT INTO ttrss_tags db_query($link, "INSERT INTO ttrss_tags
(owner_uid,tag_name,post_int_id) (owner_uid,tag_name,post_int_id)
VALUES ('$owner_uid','$tag', '$entry_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 db_query($link, "UPDATE ttrss_user_entries
SET tag_cache = '$tags_str' WHERE ref_id = '$entry_ref_id' SET tag_cache = '$tags_str' WHERE ref_id = '$entry_ref_id'
AND owner_uid = $owner_uid"); AND owner_uid = $owner_uid");
}
db_query($link, "COMMIT"); db_query($link, "COMMIT");
} }

@ -424,7 +424,6 @@
$tags_str = db_escape_string($_REQUEST["tags_str"]); $tags_str = db_escape_string($_REQUEST["tags_str"]);
$tags = array_unique(trim_array(split(",", $tags_str))); $tags = array_unique(trim_array(split(",", $tags_str)));
$tags_str = db_escape_string(join(",", $tags));
db_query($link, "BEGIN"); db_query($link, "BEGIN");
@ -433,6 +432,8 @@
if (db_num_rows($result) == 1) { if (db_num_rows($result) == 1) {
$tags_to_cache = array();
$int_id = db_fetch_result($result, 0, "int_id"); $int_id = db_fetch_result($result, 0, "int_id");
db_query($link, "DELETE FROM ttrss_tags WHERE db_query($link, "DELETE FROM ttrss_tags WHERE
@ -455,12 +456,18 @@
db_query($link, "INSERT INTO ttrss_tags db_query($link, "INSERT INTO ttrss_tags
(post_int_id, owner_uid, tag_name) VALUES ('$int_id', '".$_SESSION["uid"]."', '$tag')"); (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 /* update tag cache */
SET tag_cache = '$tags_str' WHERE ref_id = '$id'
AND owner_uid = " . $_SESSION["uid"]); $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"); db_query($link, "COMMIT");

Loading…
Cancel
Save