diff options
author | Andrew Dolgov <[email protected]> | 2009-02-05 21:59:23 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2009-02-05 21:59:23 +0300 |
commit | d8781c912dc0476af3ac7b858aedf6f3089e604e (patch) | |
tree | 6cc977b3eaab0339aa17f6c2a322f1ea6f547b41 | |
parent | 3ab18266616f903810353b752c80ea6d36442a58 (diff) |
offline: store cat_id in feeds table, backend: output category info
-rw-r--r-- | modules/backend-rpc.php | 25 | ||||
-rw-r--r-- | offline.js | 15 |
2 files changed, 30 insertions, 10 deletions
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index eac84afa5..edc167695 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -530,22 +530,39 @@ if ($stage == 0) { print "<feeds>"; - $reply = array(); - - $result = db_query($link, "SELECT id, title FROM + $result = db_query($link, "SELECT id, title, cat_id FROM ttrss_feeds WHERE owner_uid = ".$_SESSION["uid"]); while ($line = db_fetch_assoc($result)) { $has_icon = (int) feed_has_icon($line["id"]); - print "<feed has_icon=\"$has_icon\" id=\"".$line["id"]."\"><![CDATA["; + print "<feed has_icon=\"$has_icon\" + cat_id=\"".(int)$line["cat_id"]."\" id=\"".$line["id"]."\"><![CDATA["; print $line["title"]; print "]]></feed>"; } print "</feeds>"; + print "<feed-categories>"; + + $result = db_query($link, "SELECT id, title FROM + ttrss_feed_categories WHERE owner_uid = ".$_SESSION["uid"]); + + print "<category id=\"0\"><![CDATA["; + print __("Uncategorized"); + print "]]></category>"; + + while ($line = db_fetch_assoc($result)) { + print "<category id=\"".$line["id"]."\"><![CDATA["; + print $line["title"]; + print "]]></category>"; + } + + print "</feed-categories>"; + + } if ($stage > 0) { diff --git a/offline.js b/offline.js index a6f830bb9..ff65a76d9 100644 --- a/offline.js +++ b/offline.js @@ -1,4 +1,4 @@ -var SCHEMA_VERSION = 3; +var SCHEMA_VERSION = 4; var offline_mode = false; var store = false; @@ -543,10 +543,11 @@ function offline_download_parse(stage, transport) { var id = feeds[i].getAttribute("id"); var has_icon = feeds[i].getAttribute("has_icon"); var title = feeds[i].firstChild.nodeValue; - - db.execute("INSERT INTO feeds (id,title,has_icon)"+ - "VALUES (?,?,?)", - [id, title, has_icon]); + var cat_id = feeds[i].getAttribute("cat_id"); + + db.execute("INSERT INTO feeds (id,title,has_icon,cat_id)"+ + "VALUES (?,?,?, ?)", + [id, title, has_icon, cat_id]); } window.setTimeout("update_offline_data("+(stage+1)+")", 10*1000); @@ -777,6 +778,7 @@ function init_gears() { db.execute("DROP TABLE IF EXISTS init_params"); db.execute("DROP TABLE IF EXISTS cache"); db.execute("DROP TABLE IF EXISTS feeds"); + db.execute("DROP TABLE IF EXISTS categories"); db.execute("DROP TABLE IF EXISTS articles"); db.execute("DROP TABLE IF EXISTS version"); db.execute("CREATE TABLE IF NOT EXISTS version (schema_version text)"); @@ -787,7 +789,8 @@ function init_gears() { db.execute("CREATE TABLE IF NOT EXISTS init_params (key text, value text)"); db.execute("CREATE TABLE IF NOT EXISTS cache (id text, article text, param text, added text)"); - db.execute("CREATE TABLE IF NOT EXISTS feeds (id integer, title text, has_icon integer)"); + db.execute("CREATE TABLE IF NOT EXISTS feeds (id integer, title text, has_icon integer, cat_id integer)"); + db.execute("CREATE TABLE IF NOT EXISTS categories (id integer, title text)"); db.execute("CREATE TABLE IF NOT EXISTS articles (id integer, feed_id integer, title text, link text, guid text, updated text, content text, tags text, unread text, marked text, added text, comments text)"); db.execute("DELETE FROM cache WHERE id LIKE 'F:%' OR id LIKE 'C:%'"); |