<?
session_start();
-
+
if ($_GET["debug"]) {
define('DEFAULT_ERROR_LEVEL', E_ALL);
} else {
exit;
}
- define('SCHEMA_VERSION', 4);
+ define('SCHEMA_VERSION', 5);
require_once "sanity_check.php";
require_once "config.php";
pg_query("set client_encoding = 'utf-8'");
}
+ if ($_SESSION["uid"]) {
+ if (get_pref($link, "HIDE_READ_FEEDS") == "true") {
+ setcookie("ttrss_vf_hreadf", 1);
+ } else {
+ setcookie("ttrss_vf_hreadf", 0);
+ }
+
+ setcookie('ttrss_vf_refresh', FEEDS_FRAME_REFRESH);
+ setcookie('ttrss_vf_daemon', ENABLE_UPDATE_DAEMON);
+ }
+
$fetch = $_GET["fetch"];
setcookie("ttrss_icons_url", ICONS_URL);
$subop = $_GET["subop"];
+ if ($subop == "setpref") {
+ if (WEB_DEMO_MODE) {
+ return;
+ }
+
+ print "<rpc-reply>";
+
+ $key = db_escape_string($_GET["key"]);
+ $value = db_escape_string($_GET["value"]);
+
+ set_pref($link, $key, $value);
+
+ print "<param-set key=\"$key\" value=\"$value\"/>";
+
+ print "</rpc-reply>";
+
+ }
+
if ($subop == "getLabelCounters") {
$aid = $_GET["aid"];
print "<rpc-reply>";
}
if ($subop == "forceUpdateAllFeeds" || $subop == "updateAllFeeds") {
-
- update_all_feeds($link, $subop == "forceUpdateAllFeeds");
+
+ if (ENABLE_UPDATE_DAEMON) {
+
+ if ($subop == "forceUpdateAllFeeds") {
+
+ $result = db_query($link, "SELECT count(id) AS cid FROM
+ ttrss_scheduled_updates WHERE feed_id IS NULL AND
+ owner_uid = " . $_SESSION["uid"]);
+
+ $cid = db_fetch_result($result, 0, "cid");
+
+# print "<rpc-reply>";
+
+ if ($cid == 0) {
+
+ db_query($link, "INSERT INTO ttrss_scheduled_updates
+ (owner_uid, feed_id, entered) VALUES
+ (".$_SESSION["uid"].", NULL, NOW())");
+
+// print "<!-- ScheduledOK -->";
+
+ } else {
+// print "<!-- RequestAlreadyInQueue -->";
+ }
+
+# print "</rpc-reply>";
+ }
+
+ } else {
+ update_all_feeds($link, $subop == "forceUpdateAllFeeds");
+ }
$omode = $_GET["omode"];
}
getGlobalCounters($link);
print "</rpc-reply>";
+
}
/* GET["cmode"] = 0 - mark as read, 1 - as unread, 2 - toggle */
}
if ($subop == "sanityCheck") {
- sanity_check();
+ if (sanity_check($link)) {
+ print "<error error-code=\"0\"/>";
+ }
}
if ($subop == "globalPurge") {
if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
- $tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
- WHERE id = '$feed'");
+/* if (ENABLE_UPDATE_DAEMON) {
+
+ if ($cid == 0) {
- $feed_url = db_fetch_result($tmp_result, 0, "feed_url");
+ db_query($link, "INSERT INTO ttrss_scheduled_updates
+ (owner_uid, feed_id, entered) VALUES
+ (".$_SESSION["uid"].", '$feed', NOW())");
+ }
- update_rss_feed($link, $feed_url, $feed);
+ } else {
+ // fixme update_rss_feed...
+ } */
+ $tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
+ WHERE id = '$feed'");
+ $feed_url = db_fetch_result($tmp_result, 0, "feed_url");
+ update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
}
if ($subop == "MarkAllRead") {
$search_mode = db_escape_string($_GET["smode"]);
if ($search) {
- $search_query_part = "(upper(title) LIKE upper('%$search%')
- OR content LIKE '%$search%') AND";
+ $search_query_part = "(upper(ttrss_entries.title) LIKE upper('%$search%')
+ OR ttrss_entries.content LIKE '%$search%') AND";
} else {
$search_query_part = "";
}
$view_query_part = "";
if ($view_mode == "Adaptive") {
- if ($feed != -1) {
+ if ($search) {
+ $view_query_part = " ";
+ } else if ($feed != -1) {
$unread = getFeedUnread($link, $feed);
if ($unread > 0) {
$view_query_part = " unread = true AND ";
// override query strategy and enable feed display when searching globally
if ($search && $search_mode == "All feeds") {
- $query_strategy_part = "id > 0";
+ $query_strategy_part = "ttrss_entries.id > 0";
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
} else if (sprintf("%d", $feed) == 0) {
$query_strategy_part = "ttrss_entries.id > 0";
$feed_title = "";
if ($search && $search_mode == "All feeds") {
- $feed_title = "Search results";
- } else if (sprintf("%d", $feed) == 0) {
- $feed_title = $feed;
+ $feed_title = "Global search results ($search)";
+ } else if ($search && sprintf("%d", $feed) == 0) {
+ $feed_title = "Feed search results ($search, $feed)";
} else if ($feed > 0) {
$result = db_query($link, "SELECT title,site_url,last_error FROM ttrss_feeds
WHERE id = '$feed'");
if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) {
$content_preview = truncate_string(strip_tags($line["content_preview"]),
- 200);
+ 100);
}
if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) {
if ($line["feed_title"]) {
print "<td class='hlContent'>$content_link</td>";
print "<td class='hlFeed'>
- <a href='javascript:viewfeed($feed_id)'>".$line["feed_title"]."</a> </td>";
+ <a href='javascript:viewfeed($feed_id)'>".
+ $line["feed_title"]."</a> </td>";
} else {
print "<td class='hlContent' valign='middle'>";
print "<div style=\"float : right\">$updated_fmt</div>";
- print "<a href=\"".$line["link"]."\">".$line["title"]."</a>";
+ print "<a target=\"new\" href=\"".$line["link"]."\">".$line["title"]."</a>";
if ($line["feed_title"]) {
print " (<a href='javascript:viewfeed($feed_id)'>".$line["feed_title"]."</a>)";
if ($subop == "massSubscribe") {
$ids = split(",", db_escape_string($_GET["ids"]));
+ $subscribed = array();
+
foreach ($ids as $id) {
$result = db_query($link, "SELECT feed_url,title FROM ttrss_feeds
WHERE id = '$id'");
$result = db_query($link,
"INSERT INTO ttrss_feeds (owner_uid,feed_url,title,cat_id)
VALUES ('".$_SESSION["uid"]."', '$feed_url', '$title', NULL)");
+
+ array_push($subscribed, $title);
}
}
+
+ if (count($subscribed) > 0) {
+ print "<div class=\"notice\">";
+ print "<b>Subscribed to feeds:</b>";
+ print "<ul class=\"nomarks\">";
+ foreach ($subscribed as $title) {
+ print "<li>$title</li>";
+ }
+ print "</ul>";
+ print "</div>";
+ }
}
if ($subop == "browse") {
+
+ if (!ENABLE_FEED_BROWSER) {
+ print "Feed browser is administratively disabled.";
+ return;
+ }
print "<div class=\"infoBoxContents\">";
$linked_count = db_fetch_result($tmp_result, 0, "count");
-
$parent_feed = db_fetch_result($result, 0, "parent_feed");
if ($linked_count > 0) {
}
$tmp_result = db_query($link, "SELECT id,title FROM ttrss_feeds
- WHERE owner_uid = ".$_SESSION["uid"]." $cat_qpart ORDER BY title");
+ WHERE id != '$feed_id' AND owner_uid = ".$_SESSION["uid"]."
+ $cat_qpart ORDER BY title");
if (db_num_rows($tmp_result) > 0) {
print "<option disabled>--------</option>";
$auth_login = db_escape_string($_POST["login"]);
$auth_pass = db_escape_string($_POST["pass"]);
$parent_feed = db_escape_string($_POST["pfeed"]);
- $private = db_escape_string($_POST["private"]);
+ $private = db_escape_string($_POST["is_pvt"]);
if (strtoupper($upd_intl) == "DEFAULT")
$upd_intl = 0;
onchange=\"javascript:addFeed()\"
size=\"40\">
<input type=\"submit\" class=\"button\"
- onclick=\"javascript:addFeed()\" value=\"Add feed\">
-
- (<a href='javascript:browseFeeds()'>Top 50</a>)
- </td><td align='right'>
+ onclick=\"javascript:addFeed()\" value=\"Add feed\">";
+
+ if (ENABLE_FEED_BROWSER) {
+ print " (<a href='javascript:browseFeeds()'>Top 50</a>)";
+ }
+
+ print "</td><td align='right'>
<input id=\"feed_search\" size=\"20\"
onchange=\"javascript:updateFeedList()\"
value=\"$feed_search\">
if ($id == "search") {
+ $active_feed_id = db_escape_string($_GET["param"]);
+
print "<input id=\"searchbox\" class=\"extSearch\"
onblur=\"javascript:enableHotkeys()\" onfocus=\"javascript:disableHotkeys()\"
onchange=\"javascript:search()\">
<select id=\"searchmodebox\">
- <option selected>All feeds</option>
- <option>This feed</option>
- </select>
+ <option selected>All feeds</option>";
+
+ if ($active_feed_id) {
+ print "<option>This feed</option>";
+ } else {
+ print "<option disabled>This feed</option>";
+ }
+
+ print "</select>
<input type=\"submit\"
class=\"button\" onclick=\"javascript:search()\" value=\"Search\">
<input class=\"button\"
print "<p><input class=\"button\" type=\"submit\"
value=\"Change e-mail\" name=\"subop\">";
+ print "</form>";
+
print "<form action=\"backend.php\" method=\"POST\">";
print "<table width=\"100%\" class=\"prefPrefsList\">";
$tmp_user_pwd = make_password(8);
$pwd_hash = 'SHA1:' . sha1($tmp_user_pwd);
- db_query($link, "INSERT INTO ttrss_users (login,pwd_hash,access_level)
- VALUES ('$login', '$pwd_hash', 0)");
+ db_query($link, "INSERT INTO ttrss_users
+ (login,pwd_hash,access_level,last_login)
+ VALUES ('$login', '$pwd_hash', 0, NOW())");
$result = db_query($link, "SELECT id FROM ttrss_users WHERE
$site_url = db_fetch_result($result, 0, "site_url");
$result = db_query($link, "SELECT COUNT(id) AS subscribed
- FROM ttrss_feeds WHERE feed_url = '$feed_url'");
+ FROM ttrss_feeds WHERE feed_url = '$feed_url' AND private = false");
$subscribed = db_fetch_result($result, 0, "subscribed");
if ($op == "pref-feed-browser") {
+ if (!ENABLE_FEED_BROWSER) {
+ print "Feed browser is administratively disabled.";
+ return;
+ }
+
$subop = $_REQUEST["subop"];
if ($subop == "details") {
$id = db_escape_string($_GET["id"]);
- print "-- nasty details about feed $id --";
+
+ print "<div class=\"browserFeedInfo\">";
+ print "<b>Feed information:</b>";
+ print "<div class=\"detailsPart\">";
+
+ $result = db_query($link, "SELECT
+ feed_url,site_url,
+ SUBSTRING(last_updated,1,19) AS last_updated
+ FROM ttrss_feeds WHERE id = '$id'");
+
+ $feed_url = db_fetch_result($result, 0, "feed_url");
+ $site_url = db_fetch_result($result, 0, "site_url");
+ $last_updated = db_fetch_result($result, 0, "last_updated");
+
+ if (get_pref($link, 'HEADLINES_SMART_DATE')) {
+ $last_updated = smart_date_time(strtotime($last_updated));
+ } else {
+ $short_date = get_pref($link, 'SHORT_DATE_FORMAT');
+ $last_updated = date($short_date, strtotime($last_updated));
+ }
+
+ print "Site: <a href='$site_url'>$site_url</a> ".
+ "(<a href='$feed_url'>feed</a>), ".
+ "Last updated: $last_updated";
+
+ print "</div>";
+
+ $result = db_query($link, "SELECT
+ ttrss_entries.title,
+ content,
+ substring(date_entered,1,19) as date_entered,
+ substring(updated,1,19) as updated
+ FROM ttrss_entries,ttrss_user_entries
+ WHERE ttrss_entries.id = ref_id AND feed_id = '$id'
+ ORDER BY updated DESC LIMIT 5");
+
+ if (db_num_rows($result) > 0) {
+
+ print "<b>Last headlines:</b><br>";
+
+ print "<div class=\"detailsPart\">";
+ print "<ul class=\"compact\">";
+ while ($line = db_fetch_assoc($result)) {
+
+ if (get_pref($link, 'HEADLINES_SMART_DATE')) {
+ $entry_dt = smart_date_time(strtotime($line["updated"]));
+ } else {
+ $short_date = get_pref($link, 'SHORT_DATE_FORMAT');
+ $entry_dt = date($short_date, strtotime($line["updated"]));
+ }
+
+ print "<li>" . $line["title"] .
+ " <span class=\"insensitive\">($entry_dt)</span></li>";
+ }
+ print "</ul></div>";
+ }
+
+ print "</div>";
+
return;
}
-
- print "<div class=\"warning\">Under construction</div>";
$result = db_query($link, "SELECT feed_url,count(id) AS subscribers
FROM ttrss_feeds
WHERE auth_login = '' AND auth_pass = '' AND private = false
- GROUP BY feed_url ORDER BY subscribers DESC LIMIT 50");
+ GROUP BY feed_url ORDER BY subscribers DESC LIMIT 100");
- print "<ul class='nomarks' id='browseFeedList'>";
+ print "<ul class='nomarks' id='browseBigFeedList'>";
$feedctr = 0;
print "<li class='$class' id=\"FBROW-".$details["id"]."\">$check_box".
"$feed_icon ";
- print "<a href=\"javascript:browserExpand('".$details["id"]."')\">" .
+ print "<a href=\"javascript:browserToggleExpand('".$details["id"]."')\">" .
$details["title"] ."</a> " .
"<span class='subscribers'>($subscribers)</span>";
print "</ul>";
- print "<input type='submit' class='button' onclick=\"feedBrowserSubscribe()\"
- value=\"Subscribe\">";
+ print "<p>Selection:
+ <input type='submit' class='button' onclick=\"feedBrowserSubscribe()\"
+ value=\"Subscribe\"></p>";
print "</div>";