From 16fdac16c0bc21a6c3acac50faf2851ab63441d7 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 28 Dec 2009 19:30:34 +0300 Subject: add archive_article() --- functions.php | 31 +++++++++++++++++++++++++++++++ modules/backend-rpc.php | 8 ++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/functions.php b/functions.php index 8650ceb9c..e8682ca37 100644 --- a/functions.php +++ b/functions.php @@ -6407,4 +6407,35 @@ ccache_remove($link, $id, $owner_uid, true); } + function archive_article($link, $id, $owner_uid) { + db_query($link, "BEGIN"); + + $result = db_query($link, "SELECT feed_id FROM ttrss_user_entries + WHERE ref_id = '$id' AND owner_uid = $owner_uid"); + + if (db_num_rows($result) != 0) { + + /* prepare the archived table */ + + $feed_id = (int) db_fetch_result($result, 0, "feed_id"); + + if ($feed_id) { + $result = db_query($link, "SELECT id FROM ttrss_archived_feeds + WHERE id = '$feed_id'"); + + if (db_num_rows($result) == 0) { + db_query($link, "INSERT INTO ttrss_archived_feeds + (id, owner_uid, title, feed_url, site_url) + SELECT id, owner_uid, title, feed_url, site_url from ttrss_feeds + WHERE id = '$feed_id'"); + } + + db_query($link, "UPDATE ttrss_user_entries + SET orig_feed_id = feed_id, feed_id = NULL + WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); + } + } + + db_query($link, "COMMIT"); + } ?> diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index 326c669fb..7374241ca 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -120,11 +120,11 @@ } if ($subop == "archive") { - $ids = db_escape_string($_GET["ids"]); + $ids = split(",", db_escape_string($_GET["ids"])); - $result = db_query($link, "UPDATE ttrss_user_entries - SET orig_feed_id = feed_id, feed_id = NULL, marked = true - WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]); + foreach ($ids as $id) { + archive_article($link, $id, $_SESSION["uid"]); + } print ""; getGlobalCounters($link); -- cgit v1.2.3