X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=backend.php;h=ce2e73d85ea8ee02522779a535640fed73effeda;hb=45004d43408bb006f89dd2c46fb3b934966896b0;hp=0437ce819fe696703406a889739c3a5bbf841b44;hpb=3f2ff803b391b719397f606dabd0c182db6ec274;p=tt-rss.git diff --git a/backend.php b/backend.php index 0437ce81..ce2e73d8 100644 --- a/backend.php +++ b/backend.php @@ -1,13 +1,18 @@ Error: Not logged in.

@@ -63,28 +100,39 @@ } $purge_intervals = array( - 0 => _("Use default"), - -1 => _("Never purge"), - 5 => _("1 week old"), - 14 => _("2 weeks old"), - 31 => _("1 month old"), - 60 => _("2 months old"), - 90 => _("3 months old")); + 0 => __("Use default"), + -1 => __("Never purge"), + 5 => __("1 week old"), + 14 => __("2 weeks old"), + 31 => __("1 month old"), + 60 => __("2 months old"), + 90 => __("3 months old")); $update_intervals = array( - 0 => _("Use default"), - -1 => _("Disable updates"), - 30 => _("Each 30 minutes"), - 60 => _("Hourly"), - 240 => _("Each 4 hours"), - 720 => _("Each 12 hours"), - 1440 => _("Daily"), - 10080 => _("Weekly")); - + 0 => __("Use default"), + -1 => __("Disable updates"), + 15 => __("Each 15 minutes"), + 30 => __("Each 30 minutes"), + 60 => __("Hourly"), + 240 => __("Each 4 hours"), + 720 => __("Each 12 hours"), + 1440 => __("Daily"), + 10080 => __("Weekly")); + + $update_methods = array( + 0 => __("Use default"), + 1 => __("Magpie"), + 2 => __("SimplePie")); + + if (ENABLE_SIMPLEPIE) { + $update_methods[0] .= ' (SimplePie)'; + } else { + $update_methods[0] .= ' (Magpie)'; + } $access_level_names = array( - 0 => _("User"), - 10 => _("Administrator")); + 0 => __("User"), + 10 => __("Administrator")); require_once "modules/pref-prefs.php"; require_once "modules/popup-dialog.php"; @@ -95,778 +143,441 @@ require_once "modules/pref-users.php"; require_once "modules/pref-feed-browser.php"; - $script_started = getmicrotime(); - - $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); - - if (!$link) { - if (DB_TYPE == "mysql") { - print mysql_error(); - } - // PG seems to display its own errors just fine by default. - return; - } - - if (DB_TYPE == "pgsql") { - pg_query("set client_encoding = 'utf-8'"); - } - if (!sanity_check($link)) { return; } - if ($op == "rpc") { - handle_rpc_request($link); - } - - if ($op == "feeds") { + switch($op) { // Select action according to $op value. + case "rpc": + // Handle remote procedure calls. + handle_rpc_request($link); + break; // rpc - $tags = $_GET["tags"]; + case "feeds": + $tags = $_GET["tags"]; - $subop = $_GET["subop"]; + $subop = $_GET["subop"]; - if ($subop == "catchupAll") { - db_query($link, "UPDATE ttrss_user_entries SET - last_read = NOW(),unread = false WHERE owner_uid = " . $_SESSION["uid"]); - } - - if ($subop == "collapse") { - $cat_id = db_escape_string($_GET["cid"]); - - db_query($link, "UPDATE ttrss_feed_categories SET - collapsed = NOT collapsed WHERE id = '$cat_id' AND owner_uid = " . - $_SESSION["uid"]); - return; - } + switch($subop) { + case "catchupAll": + db_query($link, "UPDATE ttrss_user_entries SET + last_read = NOW(),unread = false WHERE owner_uid = " . $_SESSION["uid"]); + break; - outputFeedList($link, $tags); + case "collapse": + $cat_id = db_escape_string($_GET["cid"]); - } - - if ($op == "view") { - - $id = db_escape_string($_GET["id"]); - $feed_id = db_escape_string($_GET["feed"]); - - $result = db_query($link, "SELECT rtl_content FROM ttrss_feeds - WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]); - - if (db_num_rows($result) == 1) { - $rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content")); - } else { - $rtl_content = false; - } - - if ($rtl_content) { - $rtl_tag = "dir=\"RTL\""; - $rtl_class = "RTL"; - } else { - $rtl_tag = ""; - $rtl_class = ""; - } + db_query($link, "UPDATE ttrss_feed_categories SET + collapsed = NOT collapsed WHERE id = '$cat_id' AND owner_uid = " . + $_SESSION["uid"]); + return; + break; + } - $result = db_query($link, "UPDATE ttrss_user_entries - SET unread = false,last_read = NOW() - WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); + outputFeedList($link, $tags); + break; // feeds - $result = db_query($link, "SELECT title,link,content,feed_id,comments,int_id, - SUBSTRING(updated,1,16) as updated, - (SELECT icon_url FROM ttrss_feeds WHERE id = feed_id) as icon_url, - num_comments, - author - FROM ttrss_entries,ttrss_user_entries - WHERE id = '$id' AND ref_id = id AND owner_uid = " . $_SESSION["uid"]); + case "view": - if ($result) { + $id = db_escape_string($_GET["id"]); + $feed_id = db_escape_string($_GET["feed"]); + $cids = split(",", db_escape_string($_GET["cids"])); + $mode = db_escape_string($_GET["mode"]); + $omode = db_escape_string($_GET["omode"]); - $link_target = ""; + print ""; - if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) { - $link_target = "target=\"_new\""; - } + // in prefetch mode we only output requested cids, main article + // just gets marked as read (it already exists in client cache) - $line = db_fetch_assoc($result); - - if ($line["icon_url"]) { - $feed_icon = ""; + if ($mode == "") { + outputArticleXML($link, $id, $feed_id); } else { - $feed_icon = " "; + catchupArticleById($link, $id, 0); } -/* if ($line["comments"] && $line["link"] != $line["comments"]) { - $entry_comments = "(Comments)"; - } else { - $entry_comments = ""; - } */ - - $num_comments = $line["num_comments"]; - $entry_comments = ""; - - if ($num_comments > 0) { - if ($line["comments"]) { - $comments_url = $line["comments"]; - } else { - $comments_url = $line["link"]; + foreach ($cids as $cid) { + if ($cid) { + outputArticleXML($link, $cid, $feed_id, false); } - $entry_comments = "$num_comments comments"; - } else { - if ($line["comments"] && $line["link"] != $line["comments"]) { - $entry_comments = "comments"; - } } - print "
"; - - print "
"; - - $entry_author = $line["author"]; - - if ($entry_author) { - $entry_author = _(" - by ") . $entry_author; + if ($mode != "prefetch_old") { + print ""; + getAllCounters($link, $omode); + print ""; } - $parsed_updated = date(get_pref($link, 'LONG_DATE_FORMAT'), - strtotime($line["updated"])); - - print "
$parsed_updated
"; + print ""; + break; // view - if ($line["link"]) { - print "
" . - $line["title"] . "$entry_author
"; - } else { - print "
" . $line["title"] . "$entry_author
"; - } - - $tmp_result = db_query($link, "SELECT DISTINCT tag_name FROM - ttrss_tags WHERE post_int_id = " . $line["int_id"] . " - ORDER BY tag_name"); - - $tags_str = ""; - $f_tags_str = ""; - - $num_tags = 0; - - while ($tmp_line = db_fetch_assoc($tmp_result)) { - $num_tags++; - $tag = $tmp_line["tag_name"]; - $tag_str = "$tag, "; - - if ($num_tags == 6) { - $tags_str .= "..."; - } else if ($num_tags < 6) { - $tags_str .= $tag_str; - } - $f_tags_str .= $tag_str; - } + case "viewfeed": - $tags_str = preg_replace("/, $/", "", $tags_str); - $f_tags_str = preg_replace("/, $/", "", $f_tags_str); + $print_exec_time = true; + $timing_info = getmicrotime(); - if (!$entry_comments) $entry_comments = " "; # placeholder + print ""; - if (!$tags_str) $tags_str = ''._('no tags').''; + if ($_GET["debug"]) $timing_info = print_checkpoint("0", $timing_info); - print "
$tags_str - (+)
-
$entry_comments
"; + $omode = db_escape_string($_GET["omode"]); - print "
"; + $feed = db_escape_string($_GET["feed"]); + $subop = db_escape_string($_GET["subop"]); + $view_mode = db_escape_string($_GET["view_mode"]); + $limit = db_escape_string($_GET["limit"]); + $cat_view = db_escape_string($_GET["cat"]); + $next_unread_feed = db_escape_string($_GET["nuf"]); + $offset = db_escape_string($_GET["skip"]); - print "
" . $feed_icon . "
"; - print "
"; - - if (db_num_rows($tmp_result) > 0) { - print "
"._('Tags:')."$f_tags_str
"; - } + set_pref($link, "_DEFAULT_VIEW_MODE", $view_mode); + set_pref($link, "_DEFAULT_VIEW_LIMIT", $limit); - if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) { - $line["content"] = preg_replace("/href=/i", "target=\"_new\" href=", $line["content"]); + if (!$cat_view && preg_match("/^[0-9][0-9]*$/", $feed)) { + db_query($link, "UPDATE ttrss_feeds SET last_viewed = NOW() + WHERE id = '$feed' AND owner_uid = ".$_SESSION["uid"]); } - $line["content"] = sanitize_rss($line["content"]); + print ""; - - print "
"; + $ret = outputHeadlinesList($link, $feed, $subop, + $view_mode, $limit, $cat_view, $next_unread_feed, $offset); - } - } + $topmost_article_ids = $ret[0]; + $headlines_count = $ret[1]; + $returned_feed = $ret[2]; + $disable_cache = $ret[3]; - if ($op == "viewfeed") { + print "]]>"; - $feed = db_escape_string($_GET["feed"]); - $subop = db_escape_string($_GET["subop"]); - $view_mode = db_escape_string($_GET["view_mode"]); - $limit = db_escape_string($_GET["limit"]); - $cat_view = db_escape_string($_GET["cat"]); - $next_unread_feed = db_escape_string($_GET["nuf"]); - $offset = db_escape_string($_GET["skip"]); + print ""; - if (!$offset) $offset = 0; + $headlines_unread = getFeedUnread($link, $returned_feed); - if ($subop == "undefined") $subop = ""; + print ""; + printf("", $disable_cache); - if ($subop == "CatchupSelected") { - $ids = split(",", db_escape_string($_GET["ids"])); - $cmode = sprintf("%d", $_GET["cmode"]); + if ($_GET["debug"]) $timing_info = print_checkpoint("10", $timing_info); - catchupArticlesById($link, $ids, $cmode); - } + if (is_array($topmost_article_ids) && !get_pref($link, 'COMBINED_DISPLAY_MODE')) { + print ""; + foreach ($topmost_article_ids as $id) { + outputArticleXML($link, $id, $feed, false); + } + print ""; + } - if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) { - update_generic_feed($link, $feed, $cat_view); - } + if ($_GET["debug"]) $timing_info = print_checkpoint("20", $timing_info); - if ($subop == "MarkAllRead") { - catchup_feed($link, $feed, $cat_view); + print ""; + getAllCounters($link, $omode, $feed); + print ""; - if (get_pref($link, 'ON_CATCHUP_SHOW_NEXT_FEED')) { - if ($next_unread_feed) { - $feed = $next_unread_feed; - } - } - } + if ($_GET["debug"]) $timing_info = print_checkpoint("30", $timing_info); - if ($feed_id > 0) { - $result = db_query($link, - "SELECT id FROM ttrss_feeds WHERE id = '$feed' LIMIT 1"); - - if (db_num_rows($result) == 0) { - print "
"._('Feed not found.')."
"; - return; - } - } + print_runtime_info($link); - if (preg_match("/^-?[0-9][0-9]*$/", $feed) != false) { - - $result = db_query($link, "SELECT rtl_content FROM ttrss_feeds - WHERE id = '$feed' AND owner_uid = " . $_SESSION["uid"]); + print ""; + break; // viewfeed - if (db_num_rows($result) == 1) { - $rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content")); - } else { - $rtl_content = false; - } - - if ($rtl_content) { - $rtl_tag = "dir=\"RTL\""; - } else { - $rtl_tag = ""; - } - } else { - $rtl_tag = ""; - $rtl_content = false; - } + case "pref-feeds": + module_pref_feeds($link); + break; // pref-feeds - $script_dt_add = get_script_dt_add(); - -/* print " - - - - - - "; */ + case "pref-filters": + module_pref_filters($link); + break; // pref-filters - /// START ///////////////////////////////////////////////////////////////////////////////// + case "pref-labels": + module_pref_labels($link); + break; // pref-labels - $search = db_escape_string($_GET["query"]); - $search_mode = db_escape_string($_GET["search_mode"]); - $match_on = db_escape_string($_GET["match_on"]); + case "pref-prefs": + module_pref_prefs($link); + break; // pref-prefs - if (!$match_on) { - $match_on = "both"; - } + case "pref-users": + module_pref_users($link); + break; // prefs-users - $real_offset = $offset * $limit; + case "help": + module_help($link); + break; // help - $qfh_ret = queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, - $search, $search_mode, $match_on, false, $real_offset); + case "dlg": + module_popup_dialog($link); + break; // dlg - $result = $qfh_ret[0]; - $feed_title = $qfh_ret[1]; - $feed_site_url = $qfh_ret[2]; - $last_error = $qfh_ret[3]; - - /// STOP ////////////////////////////////////////////////////////////////////////////////// + case "pref-pub-items": + module_pref_pub_items($link); + break; // pref-pub-items - print "
"; + case "globalUpdateFeeds": + // update feeds of all users, may be used anonymously - if (!$result) { - print "
"._("Could not display feed (query failed). Please check label match syntax or local configuration.")."
"; - return; - } + // Update all feeds needing a update. + update_daemon_common($link, 0, true, false); - print_headline_subtoolbar($link, $feed_site_url, $feed_title, false, - $rtl_content, $feed, $cat_view, $search, $match_on, $search_mode, $offset); + // FIXME : old feed update way. To be removed. + //$result = db_query($link, "SELECT id FROM ttrss_users"); - print "
"; + //while ($line = db_fetch_assoc($result)) { + // $user_id = $line["id"]; + // print ""; + // update_all_feeds($link, false, $user_id); + //} - if (db_num_rows($result) > 0) { + print " + + "; + break; // globalUpdateFeeds -# print "\{$offset}"; + case "user-details": - if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { - print ""; + if (WEB_DEMO_MODE || $_SESSION["access_level"] < 10) { + return; } - $lnum = 0; - - error_reporting (DEFAULT_ERROR_LEVEL); - - $num_unread = 0; - - while ($line = db_fetch_assoc($result)) { + /* + print " + Tiny Tiny RSS : User Details + + + "; + */ - $class = ($lnum % 2) ? "even" : "odd"; - - $id = $line["id"]; - $feed_id = $line["feed_id"]; - - if ($line["last_read"] == "" && - ($line["unread"] != "t" && $line["unread"] != "1")) { - - $update_pic = "\"Updated\""; - } else { - $update_pic = "\"Updated\""; - } - - if ($line["unread"] == "t" || $line["unread"] == "1") { - $class .= "Unread"; - ++$num_unread; - $is_unread = true; - } else { - $is_unread = false; - } - - if ($line["marked"] == "t" || $line["marked"] == "1") { - $marked_pic = "\"Reset"; - } else { - $marked_pic = "\"Set"; - } + $uid = sprintf("%d", $_GET["id"]); -# $content_link = "" . -# $line["title"] . ""; + print "
User details
"; - $content_link = "" . - $line["title"] . ""; + print "
"; -# $content_link = "" . -# $line["title"] . ""; + $result = db_query($link, "SELECT login, + SUBSTRING(last_login,1,16) AS last_login, + access_level, + (SELECT COUNT(int_id) FROM ttrss_user_entries + WHERE owner_uid = id) AS stored_articles, + SUBSTRING(created,1,16) AS created + FROM ttrss_users + WHERE id = '$uid'"); + + if (db_num_rows($result) == 0) { + print "

User not found

"; + return; + } + + // print "

User Details

"; - if (get_pref($link, 'HEADLINES_SMART_DATE')) { - $updated_fmt = smart_date_time(strtotime($line["updated"])); - } else { - $short_date = get_pref($link, 'SHORT_DATE_FORMAT'); - $updated_fmt = date($short_date, strtotime($line["updated"])); - } + $login = db_fetch_result($result, 0, "login"); - if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) { - $content_preview = truncate_string(strip_tags($line["content_preview"]), - 100); - } + // print "

$login

"; - $entry_author = $line["author"]; + print "
"; - if ($entry_author) { - $entry_author = " - by $entry_author"; - } + $last_login = date(get_pref($link, 'LONG_DATE_FORMAT'), + strtotime(db_fetch_result($result, 0, "last_login"))); - if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { - - print ""; - - print ""; - - print ""; - - print ""; - - if ($line["feed_title"]) { - print ""; - print ""; - } else { - print ""; - } - - print ""; - - print ""; + $created = date(get_pref($link, 'LONG_DATE_FORMAT'), + strtotime(db_fetch_result($result, 0, "created"))); - } else { - - if ($is_unread) { - $add_class = "Unread"; - } else { - $add_class = ""; - } - - print "
"; + $access_level = db_fetch_result($result, 0, "access_level"); + $stored_articles = db_fetch_result($result, 0, "stored_articles"); - print "
"; + // print "
"; + // print ""; + print ""; + print ""; + print ""; - print "
$updated_fmt
"; - - print "".$line["title"].""; + $result = db_query($link, "SELECT COUNT(id) as num_feeds FROM ttrss_feeds + WHERE owner_uid = '$uid'"); - print $entry_author; + $num_feeds = db_fetch_result($result, 0, "num_feeds"); - if ($line["feed_title"]) { - print " (".$line["feed_title"].")"; - } + print ""; - print ""; + /* + $result = db_query($link, "SELECT + SUM(LENGTH(content)+LENGTH(title)+LENGTH(link)+LENGTH(guid)) AS db_size + FROM ttrss_user_entries,ttrss_entries + WHERE owner_uid = '$uid' AND ref_id = id"); - print "
" . $line["content_preview"] . "

"; + $db_size = round(db_fetch_result($result, 0, "db_size") / 1024); - print "
"; + print "
"; + */ - print "$marked_pic"; + print "
$update_pic - - $marked_pic$content_link - ". - $line["feed_title"]." "; - - print "" . - $line["title"]; - - if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) { - if ($content_preview) { - print " - $content_preview"; - } - } - - print ""; - print "$updated_fmt 
Username$login
Access level$access_level
".__('Registered')."$created
".__('Last logged in')."$last_login
".__('Stored articles')."$stored_articles
".__('Subscribed feeds count')."$num_feeds
Approx. used DB size$db_size KBytes
"; - print ""; + print "

".__('Subscribed feeds')."

"; - $tags = get_article_tags($link, $id); + $result = db_query($link, "SELECT id,title,site_url FROM ttrss_feeds + WHERE owner_uid = '$uid' ORDER BY title"); - $tags_str = ""; + print "
    "; - foreach ($tags as $tag) { - $num_tags++; - $tags_str .= "$tag, "; - } + $row_class = "odd"; - $tags_str = preg_replace("/, $/", "", $tags_str); + while ($line = db_fetch_assoc($result)) { - if ($tags_str == "") $tags_str = "no tags"; - - print " $tags_str (+)"; + $icon_file = ICONS_URL."/".$line["id"].".ico"; - print "
"; + if (file_exists($icon_file) && filesize($icon_file) > 0) { + $feed_icon = ""; + } else { + $feed_icon = ""; + } -# print ""; + print "
  • $feed_icon ".$line["title"]."
  • "; - print "
    "; + $row_class = toggleEvenOdd($row_class); - } - - ++$lnum; } - if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { - print ""; + if (db_num_rows($result) < $num_feeds) { + // FIXME - add link to show ALL subscribed feeds here somewhere + print "
  •  ...
  • "; } - -// print_headline_subtoolbar($link, -// "javascript:catchupPage()", "Mark page as read", true, $rtl_content); - - - } else { - print "
    "._('No articles found.')."
    "; - } - - print "
    "; - - print ""; - } - - if ($op == "pref-feeds") { - module_pref_feeds($link); - } - - if ($op == "pref-filters") { - module_pref_filters($link); - } - - if ($op == "pref-labels") { - module_pref_labels($link); - } - - if ($op == "pref-prefs") { - module_pref_prefs($link); - } - - if ($op == "pref-users") { - module_pref_users($link); - } - - if ($op == "help") { - module_help($link); - } - - if ($op == "dlg") { - module_popup_dialog($link); - } - - // update feeds of all users, may be used anonymously - if ($op == "globalUpdateFeeds") { - - $result = db_query($link, "SELECT id FROM ttrss_users"); - - while ($line = db_fetch_assoc($result)) { - $user_id = $line["id"]; -// print ""; - update_all_feeds($link, false, $user_id); - } - - print " - - "; - - } - - if ($op == "user-details") { - - if (WEB_DEMO_MODE || $_SESSION["access_level"] < 10) { - return; - } - -/* print " - Tiny Tiny RSS : User Details - - - "; */ - - $uid = sprintf("%d", $_GET["id"]); - - print "
    User details
    "; - - print "
    "; - - $result = db_query($link, "SELECT login, - SUBSTRING(last_login,1,16) AS last_login, - access_level, - (SELECT COUNT(int_id) FROM ttrss_user_entries - WHERE owner_uid = id) AS stored_articles - FROM ttrss_users - WHERE id = '$uid'"); - if (db_num_rows($result) == 0) { - print "

    User not found

    "; - return; - } - -# print "

    User Details

    "; - - $login = db_fetch_result($result, 0, "login"); - -# print "

    $login

    "; - - print ""; - - $last_login = date(get_pref($link, 'LONG_DATE_FORMAT'), - strtotime(db_fetch_result($result, 0, "last_login"))); - $access_level = db_fetch_result($result, 0, "access_level"); - $stored_articles = db_fetch_result($result, 0, "stored_articles"); - -# print ""; -# print ""; - print ""; - print ""; - - $result = db_query($link, "SELECT COUNT(id) as num_feeds FROM ttrss_feeds - WHERE owner_uid = '$uid'"); - - $num_feeds = db_fetch_result($result, 0, "num_feeds"); - - print ""; + print ""; -/* $result = db_query($link, "SELECT - SUM(LENGTH(content)+LENGTH(title)+LENGTH(link)+LENGTH(guid)) AS db_size - FROM ttrss_user_entries,ttrss_entries - WHERE owner_uid = '$uid' AND ref_id = id"); - - $db_size = round(db_fetch_result($result, 0, "db_size") / 1024); + print ""; - print ""; */ + print "
    +
    "; - print "
    Username$login
    Access level$access_level
    Last logged in$last_login
    Stored articles$stored_articles
    Subscribed feeds count$num_feeds
    Approx. used DB size$db_size KBytes
    "; + // print ""; - print "

    Subscribed feeds

    "; + break; // user-details - $result = db_query($link, "SELECT id,title,site_url FROM ttrss_feeds - WHERE owner_uid = '$uid' ORDER BY title"); + case "pref-feed-browser": + module_pref_feed_browser($link); + break; // pref-feed-browser - print ""; - - print "
    "; - - print "
    -
    "; - -// print ""; - - } - - if ($op == "pref-feed-browser") { - module_pref_feed_browser($link); - } - - if ($op == "rss") { - $feed = db_escape_string($_GET["id"]); - $user = db_escape_string($_GET["user"]); - $pass = db_escape_string($_GET["pass"]); - $is_cat = $_GET["is_cat"] != false; + case "rss": + $feed = db_escape_string($_GET["id"]); + $user = db_escape_string($_GET["user"]); + $pass = db_escape_string($_GET["pass"]); + $is_cat = $_GET["is_cat"] != false; - $search = db_escape_string($_GET["q"]); - $match_on = db_escape_string($_GET["m"]); - $search_mode = db_escape_string($_GET["smode"]); + $search = db_escape_string($_GET["q"]); + $match_on = db_escape_string($_GET["m"]); + $search_mode = db_escape_string($_GET["smode"]); - if (!$_SESSION["uid"] && $user && $pass) { - authenticate_user($link, $user, $pass); - } + if (!$_SESSION["uid"] && $user && $pass) { + authenticate_user($link, $user, $pass); + } - if ($_SESSION["uid"] || - http_authenticate_user($link)) { + if ($_SESSION["uid"] || + http_authenticate_user($link)) { - generate_syndicated_feed($link, $feed, $is_cat, - $search, $search_mode, $match_on); - } - } + generate_syndicated_feed($link, 0, $feed, $is_cat, + $search, $search_mode, $match_on); + } + break; // rss - if ($op == "labelFromSearch") { - $search = db_escape_string($_GET["search"]); - $search_mode = db_escape_string($_GET["smode"]); - $match_on = db_escape_string($_GET["match"]); - $is_cat = db_escape_string($_GET["is_cat"]); - $title = db_escape_string($_GET["title"]); - $feed = sprintf("%d", $_GET["feed"]); + case "labelFromSearch": + $search = db_escape_string($_GET["search"]); + $search_mode = db_escape_string($_GET["smode"]); + $match_on = db_escape_string($_GET["match"]); + $is_cat = db_escape_string($_GET["is_cat"]); + $title = db_escape_string($_GET["title"]); + $feed = sprintf("%d", $_GET["feed"]); - $label_qparts = array(); + $label_qparts = array(); - $search_expr = getSearchSql($search, $match_on); + $search_expr = getSearchSql($search, $match_on); - if ($is_cat) { - if ($feed != 0) { - $search_expr .= " AND ttrss_feeds.cat_id = $feed "; + if ($is_cat) { + if ($feed != 0) { + $search_expr .= " AND ttrss_feeds.cat_id = $feed "; + } else { + $search_expr .= " AND ttrss_feeds.cat_id IS NULL "; + } } else { - $search_expr .= " AND ttrss_feeds.cat_id IS NULL "; - } - } else { - if ($search_mode == "all_feeds") { - // NOOP - } else if ($search_mode == "this_cat") { + if ($search_mode == "all_feeds") { + // NOOP + } else if ($search_mode == "this_cat") { - $tmp_result = db_query($link, "SELECT cat_id - FROM ttrss_feeds WHERE id = '$feed'"); + $tmp_result = db_query($link, "SELECT cat_id + FROM ttrss_feeds WHERE id = '$feed'"); - $cat_id = db_fetch_result($tmp_result, 0, "cat_id"); + $cat_id = db_fetch_result($tmp_result, 0, "cat_id"); - if ($cat_id > 0) { - $search_expr .= " AND ttrss_feeds.cat_id = $cat_id "; + if ($cat_id > 0) { + $search_expr .= " AND ttrss_feeds.cat_id = $cat_id "; + } else { + $search_expr .= " AND ttrss_feeds.cat_id IS NULL "; + } } else { - $search_expr .= " AND ttrss_feeds.cat_id IS NULL "; + $search_expr .= " AND ttrss_feeds.id = $feed "; } - } else { - $search_expr .= " AND ttrss_feeds.id = $feed "; - } - } + } - $search_expr = db_escape_string($search_expr); + $search_expr = db_escape_string($search_expr); - print $search_expr; + print $search_expr; - if ($title) { - $result = db_query($link, - "INSERT INTO ttrss_labels (sql_exp,description,owner_uid) - VALUES ('$search_expr', '$title', '".$_SESSION["uid"]."')"); - } - } + if ($title) { + $result = db_query($link, + "INSERT INTO ttrss_labels (sql_exp,description,owner_uid) + VALUES ('$search_expr', '$title', '".$_SESSION["uid"]."')"); + } + break; // labelFromSearch - if ($op == "getUnread") { - $login = db_escape_string($_GET["login"]); + case "getUnread": + $login = db_escape_string($_GET["login"]); - header("Content-Type: text/plain; charset=utf-8"); + header("Content-Type: text/plain; charset=utf-8"); - $result = db_query($link, "SELECT id FROM ttrss_users WHERE login = '$login'"); + $result = db_query($link, "SELECT id FROM ttrss_users WHERE login = '$login'"); - if (db_num_rows($result) == 1) { - $uid = db_fetch_result($result, 0, "id"); - print getGlobalUnread($link, $uid); - } else { - print "-1;User not found"; - } - - $print_exec_time = false; - } + if (db_num_rows($result) == 1) { + $uid = db_fetch_result($result, 0, "id"); + print getGlobalUnread($link, $uid); + } else { + print "-1;User not found"; + } - if ($op == "digestTest") { - header("Content-Type: text/plain"); - print_r(prepare_headlines_digest($link, $_SESSION["uid"])); - $print_exec_time = false; + $print_exec_time = false; + break; // getUnread - } + case "digestTest": + header("Content-Type: text/plain"); + print_r(prepare_headlines_digest($link, $_SESSION["uid"])); + $print_exec_time = false; + break; // digestTest - if ($op == "digestSend") { - header("Content-Type: text/plain"); - send_headlines_digests($link); - $print_exec_time = false; + case "digestSend": + header("Content-Type: text/plain"); + send_headlines_digests($link); + $print_exec_time = false; + break; // digestSend - } + } // Select action according to $op value. + // We close the connection to database. db_close($link); ?>