require_once 'config.php';
require_once 'db-prefs.php';
require_once 'compat.php';
+ require_once 'errors.php';
+ require_once 'version.php';
require_once 'magpierss/rss_utils.inc';
(SELECT date_entered FROM ttrss_entries WHERE
id = ref_id) < NOW() - INTERVAL '$purge_interval days'"); */
- if (PG_VERSION == "7.4" || PG_VERSION == "8.0") {
+ $pg_version = get_pgsql_version($link);
+
+ if (preg_match("/^7\./", $pg_version) || preg_match("/^8\.0/", $pg_version)) {
$result = db_query($link, "DELETE FROM ttrss_user_entries WHERE
ttrss_entries.id = ref_id AND
$unread = 'false';
$last_read_qpart = 'NOW()';
}
+
+ if ($filter_name == 'mark') {
+ $marked = 'true';
+ } else {
+ $marked = 'false';
+ }
$result = db_query($link,
"INSERT INTO ttrss_user_entries
- (ref_id, owner_uid, feed_id, unread, last_read)
+ (ref_id, owner_uid, feed_id, unread, last_read, marked)
VALUES ('$ref_id', '$owner_uid', '$feed', $unread,
- $last_read_qpart)");
+ $last_read_qpart, $marked)");
}
$post_needs_update = false;
}
function print_select($id, $default, $values, $attributes = "") {
- print "<select id=\"$id\" $attributes>";
+ print "<select name=\"$id\" id=\"$id\" $attributes>";
foreach ($values as $v) {
if ($v == $default)
$sel = " selected";
print "</select>";
}
+ function print_select_hash($id, $default, $values, $attributes = "") {
+ print "<select name=\"$id\" id='$id' $attributes>";
+ foreach (array_keys($values) as $v) {
+ if ($v == $default)
+ $sel = "selected";
+ else
+ $sel = "";
+
+ print "<option $sel value=\"$v\">".$values[$v]."</option>";
+ }
+
+ print "</select>";
+ }
+
function get_filter_name($title, $content, $link, $filters) {
if ($filters["title"]) {
db_query($link, "COMMIT");
}
-
+
+ function lookup_user_id($link, $user) {
+
+ $result = db_query($link, "SELECT id FROM ttrss_users WHERE
+ login = '$login'");
+
+ if (db_num_rows($result) == 1) {
+ return db_fetch_result($result, 0, "id");
+ } else {
+ return false;
+ }
+ }
+
function authenticate_user($link, $login, $password) {
$pwd_hash = 'SHA1:' . sha1($password);
function basic_nosid_redirect_check() {
if (!SINGLE_USER_MODE) {
- if (!$_COOKIE["ttrss_sid"]) {
+ if (!$_COOKIE[get_session_cookie_name()]) {
$redirect_uri = get_login_redirect();
$return_to = preg_replace('/.*?\//', '', $_SERVER["REQUEST_URI"]);
header("Location: $redirect_uri?rt=$return_to");
}
if ($error_code != 0) {
- print "<error error-code='$error_code'/>";
+ print_error_xml(5);
return false;
} else {
return true;
}
}
+ function get_pgsql_version($link) {
+ $result = db_query($link, "SELECT version() AS version");
+ $version = split(" ", db_fetch_result($result, 0, "version"));
+ return $version[1];
+ }
+
+ function print_error_xml($code, $add_msg = "") {
+ global $ERRORS;
+
+ $error_msg = $ERRORS[$code];
+
+ if ($add_msg) {
+ $error_msg = "$error_msg; $add_msg";
+ }
+
+ print "<error error-code=\"$code\" error-msg=\"$error_msg\"/>";
+ }
+
+ function subscribe_to_feed($link, $feed_link, $cat_id = 0) {
+
+ if ($cat_id == "0" || !$cat_id) {
+ $cat_qpart = "NULL";
+ } else {
+ $cat_qpart = "'$cat_id'";
+ }
+
+ $result = db_query($link,
+ "SELECT id FROM ttrss_feeds
+ WHERE feed_url = '$feed_link' AND owner_uid = ".$_SESSION["uid"]);
+
+ if (db_num_rows($result) == 0) {
+
+ $result = db_query($link,
+ "INSERT INTO ttrss_feeds (owner_uid,feed_url,title,cat_id)
+ VALUES ('".$_SESSION["uid"]."', '$feed_link',
+ '[Unknown]', $cat_qpart)");
+
+ $result = db_query($link,
+ "SELECT id FROM ttrss_feeds WHERE feed_url = '$feed_link'
+ AND owner_uid = " . $_SESSION["uid"]);
+
+ $feed_id = db_fetch_result($result, 0, "id");
+
+ if ($feed_id) {
+ update_rss_feed($link, $feed_link, $feed_id, true);
+ }
+
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ function print_feed_select($link, $id, $default_id = "",
+ $attributes = "", $include_all_feeds = true) {
+
+ print "<select id=\"$id\" name=\"$id\" $attributes>";
+ if ($include_all_feeds) {
+ print "<option value=\"0\">All feeds</option>";
+ }
+
+ $result = db_query($link, "SELECT id,title FROM ttrss_feeds
+ WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
+
+ if (db_num_rows($result) > 0 && $include_all_feeds) {
+ print "<option disabled>--------</option>";
+ }
+
+ while ($line = db_fetch_assoc($result)) {
+ if ($line["id"] == $default_id) {
+ $is_selected = "selected";
+ } else {
+ $is_selected = "";
+ }
+ printf("<option $is_selected value='%d'>%s</option>",
+ $line["id"], htmlspecialchars(db_unescape_string($line["title"])));
+ }
+
+ print "</select>";
+ }
+
+ function print_feed_cat_select($link, $id, $default_id = "",
+ $attributes = "", $include_all_cats = true) {
+
+ print "<select id=\"$id\" name=\"$id\" $attributes>";
+
+ if ($include_all_cats) {
+ print "<option value=\"0\">Uncategorized</option>";
+ }
+
+ $result = db_query($link, "SELECT id,title FROM ttrss_feed_categories
+ WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
+
+ if (db_num_rows($result) > 0 && $include_all_cats) {
+ print "<option disabled>--------</option>";
+ }
+
+ while ($line = db_fetch_assoc($result)) {
+ if ($line["id"] == $default_id) {
+ $is_selected = "selected";
+ } else {
+ $is_selected = "";
+ }
+ printf("<option $is_selected value='%d'>%s</option>",
+ $line["id"], htmlspecialchars(db_unescape_string($line["title"])));
+ }
+
+ print "</select>";
+ }
+
+ function checkbox_to_sql_bool($val) {
+ return ($val == "on") ? "true" : "false";
+ }
+
+ function getFeedCatTitle($link, $id) {
+ if ($id == -1) {
+ return "Special";
+ } else if ($id < -10) {
+ return "Labels";
+ } else if ($id > 0) {
+ $result = db_query($link, "SELECT ttrss_feed_categories.title
+ FROM ttrss_feeds, ttrss_feed_categories WHERE ttrss_feeds.id = '$id' AND
+ cat_id = ttrss_feed_categories.id");
+ if (db_num_rows($result) == 1) {
+ return db_fetch_result($result, 0, "title");
+ } else {
+ return "Uncategorized";
+ }
+ } else {
+ return "getFeedCatTitle($id) failed";
+ }
+
+ }
+
+ function getFeedTitle($link, $id) {
+ if ($id == -1) {
+ return "Starred articles";
+ } else if ($id < -10) {
+ $label_id = -10 - $id;
+ $result = db_query($link, "SELECT description FROM ttrss_labels WHERE id = '$label_id'");
+ if (db_num_rows($result) == 1) {
+ return db_fetch_result($result, 0, "description");
+ } else {
+ return "Unknown label ($label_id)";
+ }
+
+ } else if ($id > 0) {
+ $result = db_query($link, "SELECT title FROM ttrss_feeds WHERE id = '$id'");
+ if (db_num_rows($result) == 1) {
+ return db_fetch_result($result, 0, "title");
+ } else {
+ return "Unknown feed ($id)";
+ }
+ } else {
+ return "getFeedTitle($id) failed";
+ }
+
+ }
+
+ function get_session_cookie_name() {
+ return ((!defined('TTRSS_SESSION_NAME')) ? "ttrss_sid" : TTRSS_SESSION_NAME);
+ }
+
+ function print_init_params($link) {
+ print "<init-params>";
+ if ($_SESSION["stored-params"]) {
+ foreach (array_keys($_SESSION["stored-params"]) as $key) {
+ $value = htmlspecialchars($_SESSION["stored-params"][$key]);
+ print "<param key=\"$key\" value=\"$value\"/>";
+ }
+ }
+
+ print "<param key=\"daemon_enabled\" value=\"" . ENABLE_UPDATE_DAEMON . "\"/>";
+ print "<param key=\"feeds_frame_refresh\" value=\"" . FEEDS_FRAME_REFRESH . "\"/>";
+
+ print "<param key=\"on_catchup_show_next_feed\" value=\"" .
+ get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED") . "\"/>";
+
+ print "</init-params>";
+ }
?>