X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=include%2Ffunctions.php;h=971c61e2f4e5e54bd9d81c1105f84ee66fd95e1e;hb=6322ac79a020ab584d412d782d62b2ee77d7c6cf;hp=c06208d1489bb8a40d34afbd8bf3e0d529d76a88;hpb=cfd34086c12334ae79c28a42ee9a33d75eae841c;p=tt-rss.git diff --git a/include/functions.php b/include/functions.php index c06208d1..971c61e2 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1,25 +1,15 @@ "; - $line["def_value"] = db_escape_string($link, $line["def_value"]); - $line["pref_name"] = db_escape_string($link, $line["pref_name"]); + $line["def_value"] = db_escape_string( $line["def_value"]); + $line["pref_name"] = db_escape_string( $line["pref_name"]); - if (get_schema_version($link) < 63) { - db_query($link, "INSERT INTO ttrss_user_prefs + if (get_schema_version() < 63) { + db_query( "INSERT INTO ttrss_user_prefs (owner_uid,pref_name,value) VALUES ('$uid', '".$line["pref_name"]."','".$line["def_value"]."')"); } else { - db_query($link, "INSERT INTO ttrss_user_prefs + db_query( "INSERT INTO ttrss_user_prefs (owner_uid,pref_name,value, profile) VALUES ('$uid', '".$line["pref_name"]."','".$line["def_value"]."', $profile)"); } @@ -596,7 +599,7 @@ } } - db_query($link, "COMMIT"); + db_query( "COMMIT"); } @@ -610,7 +613,7 @@ return ""; } - function authenticate_user($link, $login, $password, $check_only = false) { + function authenticate_user( $login, $password, $check_only = false) { if (!SINGLE_USER_MODE) { $user_id = false; @@ -630,15 +633,16 @@ @session_start(); $_SESSION["uid"] = $user_id; + $_SESSION["version"] = VERSION; - $result = db_query($link, "SELECT login,access_level,pwd_hash FROM ttrss_users + $result = db_query( "SELECT login,access_level,pwd_hash FROM ttrss_users WHERE id = '$user_id'"); $_SESSION["name"] = db_fetch_result($result, 0, "login"); $_SESSION["access_level"] = db_fetch_result($result, 0, "access_level"); $_SESSION["csrf_token"] = sha1(uniqid(rand(), true)); - db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . + db_query( "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . $_SESSION["uid"]); $_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"]; @@ -647,7 +651,7 @@ $_SESSION["last_version_check"] = time(); - initialize_user_prefs($link, $_SESSION["uid"]); + initialize_user_prefs( $_SESSION["uid"]); return true; } @@ -671,7 +675,7 @@ $_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"]; - initialize_user_prefs($link, $_SESSION["uid"]); + initialize_user_prefs( $_SESSION["uid"]); return true; } @@ -700,13 +704,13 @@ // user preferences are checked on every login, not here - function initialize_user($link, $uid) { + function initialize_user( $uid) { - db_query($link, "insert into ttrss_feeds (owner_uid,title,feed_url) + db_query( "insert into ttrss_feeds (owner_uid,title,feed_url) values ('$uid', 'Tiny Tiny RSS: New Releases', 'http://tt-rss.org/releases.rss')"); - db_query($link, "insert into ttrss_feeds (owner_uid,title,feed_url) + db_query( "insert into ttrss_feeds (owner_uid,title,feed_url) values ('$uid', 'Tiny Tiny RSS: Forum', 'http://tt-rss.org/forum/rss.php')"); } @@ -722,41 +726,49 @@ return $csrf_token == $_SESSION['csrf_token']; } - function load_user_plugins($link, $owner_uid) { + function load_user_plugins( $owner_uid) { if ($owner_uid) { - $plugins = get_pref($link, "_ENABLED_PLUGINS", $owner_uid); + $plugins = get_pref( "_ENABLED_PLUGINS", $owner_uid); global $pluginhost; $pluginhost->load($plugins, $pluginhost::KIND_USER, $owner_uid); - if (get_schema_version($link) > 100) { + if (get_schema_version() > 100) { $pluginhost->load_data(); } } } - function login_sequence($link) { + function login_sequence() { $_SESSION["prefs_cache"] = false; if (SINGLE_USER_MODE) { @session_start(); - authenticate_user($link, "admin", null); - cache_prefs($link); - load_user_plugins($link, $_SESSION["uid"]); + authenticate_user( "admin", null); + cache_prefs(); + load_user_plugins( $_SESSION["uid"]); } else { - if (!$_SESSION["uid"] || !validate_session($link)) { + if (!validate_session()) $_SESSION["uid"] = false; - if (AUTH_AUTO_LOGIN && authenticate_user($link, null, null)) { - $_SESSION["ref_schema_version"] = get_schema_version($link, true); + if (!$_SESSION["uid"]) { + + if (AUTH_AUTO_LOGIN && authenticate_user( null, null)) { + $_SESSION["ref_schema_version"] = get_schema_version( true); } else { - authenticate_user($link, null, null, true); + authenticate_user( null, null, true); } - if (!$_SESSION["uid"]) render_login_form($link); + if (!$_SESSION["uid"]) { + @session_destroy(); + setcookie(session_name(), '', time()-42000, '/'); + + render_login_form(); + exit; + } } else { /* bump login timestamp */ - db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . + db_query( "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . $_SESSION["uid"]); $_SESSION["last_login_update"] = time(); } @@ -767,17 +779,17 @@ } if ($_SESSION["uid"]) { - cache_prefs($link); - load_user_plugins($link, $_SESSION["uid"]); + cache_prefs(); + load_user_plugins( $_SESSION["uid"]); /* cleanup ccache */ - db_query($link, "DELETE FROM ttrss_counters_cache WHERE owner_uid = ". + db_query( "DELETE FROM ttrss_counters_cache WHERE owner_uid = ". $_SESSION["uid"] . " AND (SELECT COUNT(id) FROM ttrss_feeds WHERE ttrss_feeds.id = feed_id) = 0"); - db_query($link, "DELETE FROM ttrss_cat_counters_cache WHERE owner_uid = ". + db_query( "DELETE FROM ttrss_cat_counters_cache WHERE owner_uid = ". $_SESSION["uid"] . " AND (SELECT COUNT(id) FROM ttrss_feed_categories WHERE ttrss_feed_categories.id = feed_id) = 0"); @@ -813,7 +825,7 @@ return $dt->format('U') + $dest_tz->getOffset($dt); } - function make_local_datetime($link, $timestamp, $long, $owner_uid = false, + function make_local_datetime( $timestamp, $long, $owner_uid = false, $no_smart_dt = false) { if (!$owner_uid) $owner_uid = $_SESSION['uid']; @@ -827,7 +839,7 @@ if ($tz_offset == -1) { - $user_tz_string = get_pref($link, 'USER_TIMEZONE', $owner_uid); + $user_tz_string = get_pref( 'USER_TIMEZONE', $owner_uid); try { $user_tz = new DateTimeZone($user_tz_string); @@ -841,28 +853,28 @@ $user_timestamp = $dt->format('U') + $tz_offset; if (!$no_smart_dt) { - return smart_date_time($link, $user_timestamp, + return smart_date_time( $user_timestamp, $tz_offset, $owner_uid); } else { if ($long) - $format = get_pref($link, 'LONG_DATE_FORMAT', $owner_uid); + $format = get_pref( 'LONG_DATE_FORMAT', $owner_uid); else - $format = get_pref($link, 'SHORT_DATE_FORMAT', $owner_uid); + $format = get_pref( 'SHORT_DATE_FORMAT', $owner_uid); return date($format, $user_timestamp); } } - function smart_date_time($link, $timestamp, $tz_offset = 0, $owner_uid = false) { + function smart_date_time( $timestamp, $tz_offset = 0, $owner_uid = false) { if (!$owner_uid) $owner_uid = $_SESSION['uid']; if (date("Y.m.d", $timestamp) == date("Y.m.d", time() + $tz_offset)) { return date("G:i", $timestamp); } else if (date("Y", $timestamp) == date("Y", time() + $tz_offset)) { - $format = get_pref($link, 'SHORT_DATE_FORMAT', $owner_uid); + $format = get_pref( 'SHORT_DATE_FORMAT', $owner_uid); return date($format, $timestamp); } else { - $format = get_pref($link, 'LONG_DATE_FORMAT', $owner_uid); + $format = get_pref( 'LONG_DATE_FORMAT', $owner_uid); return date($format, $timestamp); } } @@ -886,11 +898,11 @@ // Session caching removed due to causing wrong redirects to upgrade // script when get_schema_version() is called on an obsolete session // created on a previous schema version. - function get_schema_version($link, $nocache = false) { + function get_schema_version( $nocache = false) { global $schema_version; if (!$schema_version) { - $result = db_query($link, "SELECT schema_version FROM ttrss_version"); + $result = db_query( "SELECT schema_version FROM ttrss_version"); $version = db_fetch_result($result, 0, "schema_version"); $schema_version = $version; return $version; @@ -899,24 +911,24 @@ } } - function sanity_check($link) { + function sanity_check() { require_once 'errors.php'; $error_code = 0; - $schema_version = get_schema_version($link, true); + $schema_version = get_schema_version( true); if ($schema_version != SCHEMA_VERSION) { $error_code = 5; } if (DB_TYPE == "mysql") { - $result = db_query($link, "SELECT true", false); + $result = db_query( "SELECT true", false); if (db_num_rows($result) != 1) { $error_code = 10; } } - if (db_escape_string($link, "testTEST") != "testTEST") { + if (db_escape_string( "testTEST") != "testTEST") { $error_code = 12; } @@ -975,7 +987,7 @@ } } - function catchup_feed($link, $feed, $cat_view, $owner_uid = false, $max_id = false, $mode = 'all') { + function catchup_feed( $feed, $cat_view, $owner_uid = false, $max_id = false, $mode = 'all') { if (!$owner_uid) $owner_uid = $_SESSION['uid']; @@ -1017,7 +1029,7 @@ if ($feed >= 0) { if ($feed > 0) { - $children = getChildCategories($link, $feed, $owner_uid); + $children = getChildCategories( $feed, $owner_uid); array_push($children, $feed); $children = join(",", $children); @@ -1027,7 +1039,7 @@ $cat_qpart = "cat_id IS NULL"; } - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id @@ -1036,7 +1048,7 @@ } else if ($feed == -2) { - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false,last_read = NOW() WHERE (SELECT COUNT(*) FROM ttrss_user_labels2 WHERE article_id = ref_id) > 0 AND unread = true AND $date_qpart AND owner_uid = $owner_uid"); @@ -1044,7 +1056,7 @@ } else if ($feed > 0) { - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id @@ -1053,7 +1065,7 @@ } else if ($feed < 0 && $feed > LABEL_BASE_INDEX) { // special, like starred if ($feed == -1) { - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id @@ -1061,7 +1073,7 @@ } if ($feed == -2) { - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id @@ -1070,7 +1082,7 @@ if ($feed == -3) { - $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE"); + $intl = get_pref( "FRESH_ARTICLE_MAX_AGE"); if (DB_TYPE == "pgsql") { $match_part = "date_entered > NOW() - INTERVAL '$intl hour' "; @@ -1079,7 +1091,7 @@ INTERVAL $intl HOUR) "; } - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id @@ -1087,7 +1099,7 @@ } if ($feed == -4) { - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id @@ -1098,7 +1110,7 @@ $label_id = feed_to_label_id($feed); - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT ttrss_entries.id FROM ttrss_entries, ttrss_user_entries, ttrss_user_labels2 WHERE ref_id = id @@ -1107,10 +1119,10 @@ } - ccache_update($link, $feed, $owner_uid, $cat_view); + ccache_update( $feed, $owner_uid, $cat_view); } else { // tag - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET unread = false, last_read = NOW() WHERE ref_id IN (SELECT id FROM (SELECT ttrss_entries.id FROM ttrss_entries, ttrss_user_entries, ttrss_tags WHERE ref_id = ttrss_entries.id @@ -1120,18 +1132,18 @@ } } - function getAllCounters($link) { - $data = getGlobalCounters($link); + function getAllCounters() { + $data = getGlobalCounters(); - $data = array_merge($data, getVirtCounters($link)); - $data = array_merge($data, getLabelCounters($link)); - $data = array_merge($data, getFeedCounters($link, $active_feed)); - $data = array_merge($data, getCategoryCounters($link)); + $data = array_merge($data, getVirtCounters()); + $data = array_merge($data, getLabelCounters()); + $data = array_merge($data, getFeedCounters( $active_feed)); + $data = array_merge($data, getCategoryCounters()); return $data; } - function getCategoryTitle($link, $cat_id) { + function getCategoryTitle( $cat_id) { if ($cat_id == -1) { return __("Special"); @@ -1139,7 +1151,7 @@ return __("Labels"); } else { - $result = db_query($link, "SELECT title FROM ttrss_feed_categories WHERE + $result = db_query( "SELECT title FROM ttrss_feed_categories WHERE id = '$cat_id'"); if (db_num_rows($result) == 1) { @@ -1151,17 +1163,17 @@ } - function getCategoryCounters($link) { + function getCategoryCounters() { $ret_arr = array(); /* Labels category */ $cv = array("id" => -2, "kind" => "cat", - "counter" => getCategoryUnread($link, -2)); + "counter" => getCategoryUnread( -2)); array_push($ret_arr, $cv); - $result = db_query($link, "SELECT id AS cat_id, value AS unread, + $result = db_query( "SELECT id AS cat_id, value AS unread, (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE c2.parent_cat = ttrss_feed_categories.id) AS num_children FROM ttrss_feed_categories, ttrss_cat_counters_cache @@ -1173,7 +1185,7 @@ $line["cat_id"] = (int) $line["cat_id"]; if ($line["num_children"] > 0) { - $child_counter = getCategoryChildrenUnread($link, $line["cat_id"], $_SESSION["uid"]); + $child_counter = getCategoryChildrenUnread( $line["cat_id"], $_SESSION["uid"]); } else { $child_counter = 0; } @@ -1187,7 +1199,7 @@ /* Special case: NULL category doesn't actually exist in the DB */ $cv = array("id" => 0, "kind" => "cat", - "counter" => (int) ccache_find($link, 0, $_SESSION["uid"], true)); + "counter" => (int) ccache_find( 0, $_SESSION["uid"], true)); array_push($ret_arr, $cv); @@ -1195,23 +1207,23 @@ } // only accepts real cats (>= 0) - function getCategoryChildrenUnread($link, $cat, $owner_uid = false) { + function getCategoryChildrenUnread( $cat, $owner_uid = false) { if (!$owner_uid) $owner_uid = $_SESSION["uid"]; - $result = db_query($link, "SELECT id FROM ttrss_feed_categories WHERE parent_cat = '$cat' + $result = db_query( "SELECT id FROM ttrss_feed_categories WHERE parent_cat = '$cat' AND owner_uid = $owner_uid"); $unread = 0; while ($line = db_fetch_assoc($result)) { - $unread += getCategoryUnread($link, $line["id"], $owner_uid); - $unread += getCategoryChildrenUnread($link, $line["id"], $owner_uid); + $unread += getCategoryUnread( $line["id"], $owner_uid); + $unread += getCategoryChildrenUnread( $line["id"], $owner_uid); } return $unread; } - function getCategoryUnread($link, $cat, $owner_uid = false) { + function getCategoryUnread( $cat, $owner_uid = false) { if (!$owner_uid) $owner_uid = $_SESSION["uid"]; @@ -1223,7 +1235,7 @@ $cat_query = "cat_id IS NULL"; } - $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE $cat_query + $result = db_query( "SELECT id FROM ttrss_feeds WHERE $cat_query AND owner_uid = " . $owner_uid); $cat_feeds = array(); @@ -1235,7 +1247,7 @@ $match_part = implode(" OR ", $cat_feeds); - $result = db_query($link, "SELECT COUNT(int_id) AS unread + $result = db_query( "SELECT COUNT(int_id) AS unread FROM ttrss_user_entries WHERE unread = true AND ($match_part) AND owner_uid = " . $owner_uid); @@ -1249,10 +1261,10 @@ return $unread; } else if ($cat == -1) { - return getFeedUnread($link, -1) + getFeedUnread($link, -2) + getFeedUnread($link, -3) + getFeedUnread($link, 0); + return getFeedUnread( -1) + getFeedUnread($link, -2) + getFeedUnread($link, -3) + getFeedUnread($link, 0); } else if ($cat == -2) { - $result = db_query($link, " + $result = db_query( " SELECT COUNT(unread) AS unread FROM ttrss_user_entries, ttrss_user_labels2 WHERE article_id = ref_id AND unread = true @@ -1265,14 +1277,14 @@ } } - function getFeedUnread($link, $feed, $is_cat = false) { - return getFeedArticles($link, $feed, $is_cat, true, $_SESSION["uid"]); + function getFeedUnread( $feed, $is_cat = false) { + return getFeedArticles( $feed, $is_cat, true, $_SESSION["uid"]); } - function getLabelUnread($link, $label_id, $owner_uid = false) { + function getLabelUnread( $label_id, $owner_uid = false) { if (!$owner_uid) $owner_uid = $_SESSION["uid"]; - $result = db_query($link, "SELECT COUNT(ref_id) AS unread FROM ttrss_user_entries, ttrss_user_labels2 + $result = db_query( "SELECT COUNT(ref_id) AS unread FROM ttrss_user_entries, ttrss_user_labels2 WHERE owner_uid = '$owner_uid' AND unread = true AND label_id = '$label_id' AND article_id = ref_id"); if (db_num_rows($result) != 0) { @@ -1282,7 +1294,7 @@ } } - function getFeedArticles($link, $feed, $is_cat = false, $unread_only = false, + function getFeedArticles( $feed, $is_cat = false, $unread_only = false, $owner_uid = false) { $n_feed = (int) $feed; @@ -1297,14 +1309,14 @@ } if ($is_cat) { - return getCategoryUnread($link, $n_feed, $owner_uid); + return getCategoryUnread( $n_feed, $owner_uid); } else if ($n_feed == -6) { return 0; } else if ($feed != "0" && $n_feed == 0) { - $feed = db_escape_string($link, $feed); + $feed = db_escape_string( $feed); - $result = db_query($link, "SELECT SUM((SELECT COUNT(int_id) + $result = db_query( "SELECT SUM((SELECT COUNT(int_id) FROM ttrss_user_entries,ttrss_entries WHERE int_id = post_int_id AND ref_id = id AND $unread_qpart)) AS count FROM ttrss_tags WHERE owner_uid = $owner_uid AND tag_name = '$feed'"); @@ -1317,7 +1329,7 @@ } else if ($n_feed == -3) { $match_part = "unread = true AND score >= 0"; - $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE", $owner_uid); + $intl = get_pref( "FRESH_ARTICLE_MAX_AGE", $owner_uid); if (DB_TYPE == "pgsql") { $match_part .= " AND updated > NOW() - INTERVAL '$intl hour' "; @@ -1341,7 +1353,7 @@ $label_id = feed_to_label_id($feed); - return getLabelUnread($link, $label_id, $owner_uid); + return getLabelUnread( $label_id, $owner_uid); } @@ -1360,11 +1372,11 @@ //echo "[$feed/$query]\n"; - $result = db_query($link, $query); + $result = db_query( $query); } else { - $result = db_query($link, "SELECT COUNT(post_int_id) AS unread + $result = db_query( "SELECT COUNT(post_int_id) AS unread FROM ttrss_tags,ttrss_user_entries,ttrss_entries WHERE tag_name = '$feed' AND post_int_id = int_id AND ref_id = ttrss_entries.id AND $unread_qpart AND ttrss_tags.owner_uid = " . $owner_uid); @@ -1375,13 +1387,13 @@ return $unread; } - function getGlobalUnread($link, $user_id = false) { + function getGlobalUnread( $user_id = false) { if (!$user_id) { $user_id = $_SESSION["uid"]; } - $result = db_query($link, "SELECT SUM(value) AS c_id FROM ttrss_counters_cache + $result = db_query( "SELECT SUM(value) AS c_id FROM ttrss_counters_cache WHERE owner_uid = '$user_id' AND feed_id > 0"); $c_id = db_fetch_result($result, 0, "c_id"); @@ -1389,11 +1401,11 @@ return $c_id; } - function getGlobalCounters($link, $global_unread = -1) { + function getGlobalCounters( $global_unread = -1) { $ret_arr = array(); if ($global_unread == -1) { - $global_unread = getGlobalUnread($link); + $global_unread = getGlobalUnread(); } $cv = array("id" => "global-unread", @@ -1401,7 +1413,7 @@ array_push($ret_arr, $cv); - $result = db_query($link, "SELECT COUNT(id) AS fn FROM + $result = db_query( "SELECT COUNT(id) AS fn FROM ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]); $subscribed_feeds = db_fetch_result($result, 0, "fn"); @@ -1414,19 +1426,19 @@ return $ret_arr; } - function getVirtCounters($link) { + function getVirtCounters() { $ret_arr = array(); for ($i = 0; $i >= -4; $i--) { - $count = getFeedUnread($link, $i); + $count = getFeedUnread( $i); $cv = array("id" => $i, "counter" => (int) $count); -// if (get_pref($link, 'EXTENDED_FEEDLIST')) -// $cv["xmsg"] = getFeedArticles($link, $i)." ".__("total"); +// if (get_pref( 'EXTENDED_FEEDLIST')) +// $cv["xmsg"] = getFeedArticles( $i)." ".__("total"); array_push($ret_arr, $cv); } @@ -1449,16 +1461,17 @@ return $ret_arr; } - function getLabelCounters($link, $descriptions = false) { + function getLabelCounters( $descriptions = false) { $ret_arr = array(); $owner_uid = $_SESSION["uid"]; - $result = db_query($link, "SELECT id,caption,COUNT(unread) AS unread + $result = db_query( "SELECT id,caption,COUNT(unread) AS unread FROM ttrss_labels2 LEFT JOIN ttrss_user_labels2 ON (ttrss_labels2.id = label_id) - LEFT JOIN ttrss_user_entries ON (ref_id = article_id AND unread = true) + LEFT JOIN ttrss_user_entries ON (ref_id = article_id AND unread = true + AND ttrss_user_entries.owner_uid = $owner_uid) WHERE ttrss_labels2.owner_uid = $owner_uid GROUP BY ttrss_labels2.id, ttrss_labels2.caption"); @@ -1475,8 +1488,8 @@ if ($descriptions) $cv["description"] = $label_name; -// if (get_pref($link, 'EXTENDED_FEEDLIST')) -// $cv["xmsg"] = getFeedArticles($link, $id)." ".__("total"); +// if (get_pref( 'EXTENDED_FEEDLIST')) +// $cv["xmsg"] = getFeedArticles( $id)." ".__("total"); array_push($ret_arr, $cv); } @@ -1484,7 +1497,7 @@ return $ret_arr; } - function getFeedCounters($link, $active_feed = false) { + function getFeedCounters( $active_feed = false) { $ret_arr = array(); @@ -1497,7 +1510,7 @@ AND ttrss_counters_cache.owner_uid = ttrss_feeds.owner_uid AND ttrss_counters_cache.feed_id = id"; - $result = db_query($link, $query); + $result = db_query( $query); $fctrs_modified = false; while ($line = db_fetch_assoc($result)) { @@ -1506,7 +1519,7 @@ $count = $line["count"]; $last_error = htmlspecialchars($line["last_error"]); - $last_updated = make_local_datetime($link, $line['last_updated'], false); + $last_updated = make_local_datetime( $line['last_updated'], false); $has_img = feed_has_icon($id); @@ -1521,8 +1534,8 @@ if ($last_error) $cv["error"] = $last_error; -// if (get_pref($link, 'EXTENDED_FEEDLIST')) -// $cv["xmsg"] = getFeedArticles($link, $id)." ".__("total"); +// if (get_pref( 'EXTENDED_FEEDLIST')) +// $cv["xmsg"] = getFeedArticles( $id)." ".__("total"); if ($active_feed && $id == $active_feed) $cv["title"] = truncate_string($line["title"], 30); @@ -1534,8 +1547,8 @@ return $ret_arr; } - function get_pgsql_version($link) { - $result = db_query($link, "SELECT version() AS version"); + function get_pgsql_version() { + $result = db_query( "SELECT version() AS version"); $version = explode(" ", db_fetch_result($result, 0, "version")); return $version[1]; } @@ -1552,7 +1565,7 @@ * to get all possible feeds. * 5 - Couldn't download the URL content. */ - function subscribe_to_feed($link, $url, $cat_id = 0, + function subscribe_to_feed( $url, $cat_id = 0, $auth_login = '', $auth_pass = '') { global $fetch_last_error; @@ -1587,25 +1600,35 @@ $cat_qpart = "'$cat_id'"; } - $result = db_query($link, + $result = db_query( "SELECT id FROM ttrss_feeds WHERE feed_url = '$url' AND owner_uid = ".$_SESSION["uid"]); + if (strlen(FEED_CRYPT_KEY) > 0) { + require_once "crypt.php"; + $auth_pass = substr(encrypt_string($auth_pass), 0, 250); + $auth_pass_encrypted = 'true'; + } else { + $auth_pass_encrypted = 'false'; + } + + $auth_pass = db_escape_string( $auth_pass); + if (db_num_rows($result) == 0) { - $result = db_query($link, + $result = db_query( "INSERT INTO ttrss_feeds - (owner_uid,feed_url,title,cat_id, auth_login,auth_pass,update_method) + (owner_uid,feed_url,title,cat_id, auth_login,auth_pass,update_method,auth_pass_encrypted) VALUES ('".$_SESSION["uid"]."', '$url', - '[Unknown]', $cat_qpart, '$auth_login', '$auth_pass', 0)"); + '[Unknown]', $cat_qpart, '$auth_login', '$auth_pass', 0, $auth_pass_encrypted)"); - $result = db_query($link, + $result = db_query( "SELECT id FROM ttrss_feeds WHERE feed_url = '$url' AND owner_uid = " . $_SESSION["uid"]); $feed_id = db_fetch_result($result, 0, "id"); if ($feed_id) { - update_rss_feed($link, $feed_id, true); + update_rss_feed( $feed_id, true); } return array("code" => 1); @@ -1614,7 +1637,7 @@ } } - function print_feed_select($link, $id, $default_id = "", + function print_feed_select( $id, $default_id = "", $attributes = "", $include_all_feeds = true, $root_id = false, $nest_level = 0) { @@ -1626,14 +1649,14 @@ } } - if (get_pref($link, 'ENABLE_FEED_CATS')) { + if (get_pref( 'ENABLE_FEED_CATS')) { if ($root_id) $parent_qpart = "parent_cat = '$root_id'"; else $parent_qpart = "parent_cat IS NULL"; - $result = db_query($link, "SELECT id,title, + $result = db_query( "SELECT id,title, (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE c2.parent_cat = ttrss_feed_categories.id) AS num_children FROM ttrss_feed_categories @@ -1650,10 +1673,10 @@ $line["id"], htmlspecialchars($line["title"])); if ($line["num_children"] > 0) - print_feed_select($link, $id, $default_id, $attributes, + print_feed_select( $id, $default_id, $attributes, $include_all_feeds, $line["id"], $nest_level+1); - $feed_result = db_query($link, "SELECT id,title FROM ttrss_feeds + $feed_result = db_query( "SELECT id,title FROM ttrss_feeds WHERE cat_id = '".$line["id"]."' AND owner_uid = ".$_SESSION["uid"] . " ORDER BY title"); while ($fline = db_fetch_assoc($feed_result)) { @@ -1675,7 +1698,7 @@ printf("", __("Uncategorized")); - $feed_result = db_query($link, "SELECT id,title FROM ttrss_feeds + $feed_result = db_query( "SELECT id,title FROM ttrss_feeds WHERE cat_id IS NULL AND owner_uid = ".$_SESSION["uid"] . " ORDER BY title"); while ($fline = db_fetch_assoc($feed_result)) { @@ -1692,7 +1715,7 @@ } } else { - $result = db_query($link, "SELECT id,title FROM ttrss_feeds + $result = db_query( "SELECT id,title FROM ttrss_feeds WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title"); while ($line = db_fetch_assoc($result)) { @@ -1709,7 +1732,7 @@ } } - function print_feed_cat_select($link, $id, $default_id, + function print_feed_cat_select( $id, $default_id, $attributes, $include_all_cats = true, $root_id = false, $nest_level = 0) { if (!$root_id) { @@ -1721,7 +1744,7 @@ else $parent_qpart = "parent_cat IS NULL"; - $result = db_query($link, "SELECT id,title, + $result = db_query( "SELECT id,title, (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE c2.parent_cat = ttrss_feed_categories.id) AS num_children FROM ttrss_feed_categories @@ -1742,7 +1765,7 @@ $line["id"], htmlspecialchars($line["title"])); if ($line["num_children"] > 0) - print_feed_cat_select($link, $id, $default_id, $attributes, + print_feed_cat_select( $id, $default_id, $attributes, $include_all_cats, $line["id"], $nest_level+1); } @@ -1768,13 +1791,13 @@ return ($val == "on") ? "true" : "false"; } - function getFeedCatTitle($link, $id) { + function getFeedCatTitle( $id) { if ($id == -1) { return __("Special"); } else if ($id < LABEL_BASE_INDEX) { return __("Labels"); } else if ($id > 0) { - $result = db_query($link, "SELECT ttrss_feed_categories.title + $result = db_query( "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) { @@ -1817,11 +1840,13 @@ } break; } + + return false; } - function getFeedTitle($link, $id, $cat = false) { + function getFeedTitle( $id, $cat = false) { if ($cat) { - return getCategoryTitle($link, $id); + return getCategoryTitle( $id); } else if ($id == -1) { return __("Starred articles"); } else if ($id == -2) { @@ -1836,7 +1861,7 @@ return __("Recently read"); } else if ($id < LABEL_BASE_INDEX) { $label_id = feed_to_label_id($id); - $result = db_query($link, "SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'"); + $result = db_query( "SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'"); if (db_num_rows($result) == 1) { return db_fetch_result($result, 0, "caption"); } else { @@ -1844,7 +1869,7 @@ } } else if (is_numeric($id) && $id > 0) { - $result = db_query($link, "SELECT title FROM ttrss_feeds WHERE id = '$id'"); + $result = db_query( "SELECT title FROM ttrss_feeds WHERE id = '$id'"); if (db_num_rows($result) == 1) { return db_fetch_result($result, 0, "title"); } else { @@ -1855,7 +1880,7 @@ } } - function make_init_params($link) { + function make_init_params() { $params = array(); foreach (array("ON_CATCHUP_SHOW_NEXT_FEED", "HIDE_READ_FEEDS", @@ -1863,18 +1888,18 @@ "CDM_AUTO_CATCHUP", "FRESH_ARTICLE_MAX_AGE", "HIDE_READ_SHOWS_SPECIAL", "COMBINED_DISPLAY_MODE") as $param) { - $params[strtolower($param)] = (int) get_pref($link, $param); + $params[strtolower($param)] = (int) get_pref( $param); } $params["icons_url"] = ICONS_URL; $params["cookie_lifetime"] = SESSION_COOKIE_LIFETIME; - $params["default_view_mode"] = get_pref($link, "_DEFAULT_VIEW_MODE"); - $params["default_view_limit"] = (int) get_pref($link, "_DEFAULT_VIEW_LIMIT"); - $params["default_view_order_by"] = get_pref($link, "_DEFAULT_VIEW_ORDER_BY"); + $params["default_view_mode"] = get_pref( "_DEFAULT_VIEW_MODE"); + $params["default_view_limit"] = (int) get_pref( "_DEFAULT_VIEW_LIMIT"); + $params["default_view_order_by"] = get_pref( "_DEFAULT_VIEW_ORDER_BY"); $params["bw_limit"] = (int) $_SESSION["bw_limit"]; $params["label_base_index"] = (int) LABEL_BASE_INDEX; - $result = db_query($link, "SELECT MAX(id) AS mid, COUNT(*) AS nf FROM + $result = db_query( "SELECT MAX(id) AS mid, COUNT(*) AS nf FROM ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]); $max_feed_id = db_fetch_result($result, 0, "mid"); @@ -1883,8 +1908,8 @@ $params["max_feed_id"] = (int) $max_feed_id; $params["num_feeds"] = (int) $num_feeds; - $params["collapsed_feedlist"] = (int) get_pref($link, "_COLLAPSED_FEEDLIST"); - $params["hotkeys"] = get_hotkeys_map($link); + $params["collapsed_feedlist"] = (int) get_pref( "_COLLAPSED_FEEDLIST"); + $params["hotkeys"] = get_hotkeys_map(); $params["csrf_token"] = $_SESSION["csrf_token"]; $params["widescreen"] = (int) $_COOKIE["ttrss_widescreen"]; @@ -1894,7 +1919,7 @@ return $params; } - function get_hotkeys_info($link) { + function get_hotkeys_info() { $hotkeys = array( __("Navigation") => array( "next_feed" => __("Open next feed"), @@ -1903,6 +1928,8 @@ "prev_article" => __("Open previous article"), "next_article_noscroll" => __("Open next article (don't scroll long articles)"), "prev_article_noscroll" => __("Open previous article (don't scroll long articles)"), + "next_article_noexpand" => __("Move to next article (don't expand or mark read)"), + "prev_article_noexpand" => __("Move to previous article (don't expand or mark read)"), "search_dialog" => __("Show search dialog")), __("Article") => array( "toggle_mark" => __("Toggle starred"), @@ -1919,6 +1946,7 @@ "select_article_cursor" => __("Select article under cursor"), "email_article" => __("Email article"), "close_article" => __("Close/collapse article"), + "toggle_expand" => __("Toggle article expansion (combined mode)"), "toggle_widescreen" => __("Toggle widescreen mode"), "toggle_embed_original" => __("Toggle embed original")), __("Article selection") => array( @@ -1962,7 +1990,7 @@ return $hotkeys; } - function get_hotkeys_map($link) { + function get_hotkeys_map() { $hotkeys = array( // "navigation" => array( "k" => "next_feed", @@ -2026,7 +2054,7 @@ "^(191)|Ctrl+/" => "help_dialog", ); - if (get_pref($link, 'COMBINED_DISPLAY_MODE')) { + if (get_pref( 'COMBINED_DISPLAY_MODE')) { $hotkeys["^(38)|Ctrl-up"] = "prev_article_noscroll"; $hotkeys["^(40)|Ctrl-down"] = "next_article_noscroll"; } @@ -2049,10 +2077,10 @@ return array($prefixes, $hotkeys); } - function make_runtime_info($link) { + function make_runtime_info() { $data = array(); - $result = db_query($link, "SELECT MAX(id) AS mid, COUNT(*) AS nf FROM + $result = db_query( "SELECT MAX(id) AS mid, COUNT(*) AS nf FROM ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]); $max_feed_id = db_fetch_result($result, 0, "mid"); @@ -2061,8 +2089,8 @@ $data["max_feed_id"] = (int) $max_feed_id; $data["num_feeds"] = (int) $num_feeds; - $data['last_article_id'] = getLastArticleId($link); - $data['cdm_expanded'] = get_pref($link, 'CDM_EXPANDED'); + $data['last_article_id'] = getLastArticleId(); + $data['cdm_expanded'] = get_pref( 'CDM_EXPANDED'); $data['dep_ts'] = calculate_dep_timestamp(); $data['reload_on_ts_change'] = !defined('_NO_RELOAD_ON_TS_CHANGE'); @@ -2095,7 +2123,7 @@ } if ($_SESSION["last_version_check"] + 86400 + rand(-1000, 1000) < time()) { - $new_version_details = @check_for_update($link); + $new_version_details = @check_for_update(); $data['new_version_available'] = (int) ($new_version_details != false); @@ -2106,7 +2134,7 @@ return $data; } - function search_to_sql($link, $search) { + function search_to_sql( $search) { $search_query_part = ""; @@ -2123,39 +2151,77 @@ $commandpair = explode(":", mb_strtolower($k), 2); - if ($commandpair[0] == "note" && $commandpair[1]) { - - if ($commandpair[1] == "true") - array_push($query_keywords, "($not (note IS NOT NULL AND note != ''))"); - else - array_push($query_keywords, "($not (note IS NULL OR note = ''))"); - - } else if ($commandpair[0] == "star" && $commandpair[1]) { - - if ($commandpair[1] == "true") - array_push($query_keywords, "($not (marked = true))"); - else - array_push($query_keywords, "($not (marked = false))"); - - } else if ($commandpair[0] == "pub" && $commandpair[1]) { + switch ($commandpair[0]) { + case "title": + if ($commandpair[1]) { + array_push($query_keywords, "($not (LOWER(ttrss_entries.title) LIKE '%". + db_escape_string( mb_strtolower($commandpair[1]))."%'))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))"); + } + break; + case "author": + if ($commandpair[1]) { + array_push($query_keywords, "($not (LOWER(author) LIKE '%". + db_escape_string( mb_strtolower($commandpair[1]))."%'))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))"); + } + break; + case "note": + if ($commandpair[1]) { + if ($commandpair[1] == "true") + array_push($query_keywords, "($not (note IS NOT NULL AND note != ''))"); + else if ($commandpair[1] == "false") + array_push($query_keywords, "($not (note IS NULL OR note = ''))"); + else + array_push($query_keywords, "($not (LOWER(note) LIKE '%". + db_escape_string( mb_strtolower($commandpair[1]))."%'))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))"); + } + break; + case "star": - if ($commandpair[1] == "true") - array_push($query_keywords, "($not (published = true))"); - else - array_push($query_keywords, "($not (published = false))"); + if ($commandpair[1]) { + if ($commandpair[1] == "true") + array_push($query_keywords, "($not (marked = true))"); + else + array_push($query_keywords, "($not (marked = false))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))"); + } + break; + case "pub": + if ($commandpair[1]) { + if ($commandpair[1] == "true") + array_push($query_keywords, "($not (published = true))"); + else + array_push($query_keywords, "($not (published = false))"); - } else if (strpos($k, "@") === 0) { + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))"); + } + break; + default: + if (strpos($k, "@") === 0) { - $user_tz_string = get_pref($link, 'USER_TIMEZONE', $_SESSION['uid']); - $orig_ts = strtotime(substr($k, 1)); - $k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC')); + $user_tz_string = get_pref( 'USER_TIMEZONE', $_SESSION['uid']); + $orig_ts = strtotime(substr($k, 1)); + $k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC')); - //$k = date("Y-m-d", strtotime(substr($k, 1))); + //$k = date("Y-m-d", strtotime(substr($k, 1))); - array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')"); - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') - OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))"); + array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))"); + } } } @@ -2164,35 +2230,35 @@ return $search_query_part; } - function getParentCategories($link, $cat, $owner_uid) { + function getParentCategories( $cat, $owner_uid) { $rv = array(); - $result = db_query($link, "SELECT parent_cat FROM ttrss_feed_categories + $result = db_query( "SELECT parent_cat FROM ttrss_feed_categories WHERE id = '$cat' AND parent_cat IS NOT NULL AND owner_uid = $owner_uid"); while ($line = db_fetch_assoc($result)) { array_push($rv, $line["parent_cat"]); - $rv = array_merge($rv, getParentCategories($link, $line["parent_cat"], $owner_uid)); + $rv = array_merge($rv, getParentCategories( $line["parent_cat"], $owner_uid)); } return $rv; } - function getChildCategories($link, $cat, $owner_uid) { + function getChildCategories( $cat, $owner_uid) { $rv = array(); - $result = db_query($link, "SELECT id FROM ttrss_feed_categories + $result = db_query( "SELECT id FROM ttrss_feed_categories WHERE parent_cat = '$cat' AND owner_uid = $owner_uid"); while ($line = db_fetch_assoc($result)) { array_push($rv, $line["id"]); - $rv = array_merge($rv, getChildCategories($link, $line["id"], $owner_uid)); + $rv = array_merge($rv, getChildCategories( $line["id"], $owner_uid)); } return $rv; } - function queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, $search, $search_mode, $override_order = false, $offset = 0, $owner_uid = 0, $filter = false, $since_id = 0, $include_children = false, $ignore_vfeed_group = false) { + function queryFeedHeadlines( $feed, $limit, $view_mode, $cat_view, $search, $search_mode, $override_order = false, $offset = 0, $owner_uid = 0, $filter = false, $since_id = 0, $include_children = false, $ignore_vfeed_group = false) { if (!$owner_uid) $owner_uid = $_SESSION["uid"]; @@ -2209,7 +2275,7 @@ $search_query_part = "ref_id = -1 AND "; } else { - $search_query_part = search_to_sql($link, $search); + $search_query_part = search_to_sql( $search); $search_query_part .= " AND "; } @@ -2227,10 +2293,10 @@ $override_order = "updated DESC"; - $filter_query_part = filter_to_sql($link, $filter, $owner_uid); + $filter_query_part = filter_to_sql( $filter, $owner_uid); // Try to check if SQL regexp implementation chokes on a valid regexp - $result = db_query($link, "SELECT true AS true_val FROM ttrss_entries, + $result = db_query( "SELECT true AS true_val FROM ttrss_entries, ttrss_user_entries, ttrss_feeds, ttrss_feed_categories WHERE $filter_query_part LIMIT 1", false); @@ -2263,10 +2329,10 @@ $view_query_part = " "; } else if ($feed != -1) { - $unread = getFeedUnread($link, $feed, $cat_view); + $unread = getFeedUnread( $feed, $cat_view); if ($cat_view && $feed > 0 && $include_children) - $unread += getCategoryChildrenUnread($link, $feed); + $unread += getCategoryChildrenUnread( $feed); if ($unread > 0) $view_query_part = " unread = true AND "; @@ -2312,7 +2378,7 @@ if ($feed > 0) { if ($include_children) { - $subcats = getChildCategories($link, $feed, $owner_uid); + $subcats = getChildCategories( $feed, $owner_uid); array_push($subcats, $feed); $cats_qpart = join(",", $subcats); } else { @@ -2332,7 +2398,7 @@ if ($feed > 0) { if ($include_children) { # sub-cats - $subcats = getChildCategories($link, $feed, $owner_uid); + $subcats = getChildCategories( $feed, $owner_uid); array_push($subcats, $feed); $query_strategy_part = "cat_id IN (". @@ -2395,7 +2461,7 @@ } else if ($feed == -3) { // fresh virtual feed $query_strategy_part = "unread = true AND score >= 0"; - $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE", $owner_uid); + $intl = get_pref( "FRESH_ARTICLE_MAX_AGE", $owner_uid); if (DB_TYPE == "pgsql") { $query_strategy_part .= " AND date_entered > NOW() - INTERVAL '$intl hour' "; @@ -2405,6 +2471,7 @@ $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else if ($feed == -4) { // all articles virtual feed + $allow_archived = true; $query_strategy_part = "true"; $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; } else if ($feed <= LABEL_BASE_INDEX) { // labels @@ -2422,13 +2489,7 @@ $query_strategy_part = "true"; } - if (get_pref($link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) { - $date_sort_field = "updated"; - } else { - $date_sort_field = "date_entered"; - } - - $order_by = "$date_sort_field DESC, updated DESC"; + $order_by = "score DESC, date_entered DESC, updated DESC"; if ($view_mode == "unread_first") { $order_by = "unread DESC, $order_by"; @@ -2444,17 +2505,17 @@ $feed_title = T_sprintf("Search results: %s", $search); } else { if ($cat_view) { - $feed_title = getCategoryTitle($link, $feed); + $feed_title = getCategoryTitle( $feed); } else { if (is_numeric($feed) && $feed > 0) { - $result = db_query($link, "SELECT title,site_url,last_error + $result = db_query( "SELECT title,site_url,last_error FROM ttrss_feeds WHERE id = '$feed' AND owner_uid = $owner_uid"); $feed_title = db_fetch_result($result, 0, "title"); $feed_site_url = db_fetch_result($result, 0, "site_url"); $last_error = db_fetch_result($result, 0, "last_error"); } else { - $feed_title = getFeedTitle($link, $feed); + $feed_title = getFeedTitle( $feed); } } } @@ -2474,7 +2535,7 @@ } // proper override_order applied above - if ($vfeed_query_part && !$ignore_vfeed_group && get_pref($link, 'VFEED_GROUP_BY_FEED', $owner_uid)) { + if ($vfeed_query_part && !$ignore_vfeed_group && get_pref( 'VFEED_GROUP_BY_FEED', $owner_uid)) { if (!$override_order) { $order_by = "ttrss_feeds.title, $order_by"; } else { @@ -2491,6 +2552,9 @@ LEFT JOIN ttrss_feeds ON (feed_id = ttrss_feeds.id)"; } + if ($vfeed_query_part) + $vfeed_query_part .= "favicon_avg_color,"; + $query = "SELECT DISTINCT date_entered, guid, @@ -2525,7 +2589,7 @@ if ($_REQUEST["debug"]) print $query; - $result = db_query($link, $query); + $result = db_query( $query); } else { // browsing by tag @@ -2594,14 +2658,14 @@ // $tag_sql = "tag_name = '$feed'"; DEFAULT way // error_log("[". $select_qpart . "][" . $from_qpart . "][" .$where_qpart . "]"); - $result = db_query($link, $select_qpart . $from_qpart . $where_qpart); + $result = db_query( $select_qpart . $from_qpart . $where_qpart); } return array($result, $feed_title, $feed_site_url, $last_error); } - function sanitize($link, $str, $force_remove_images = false, $owner = false, $site_url = false) { + function sanitize( $str, $force_remove_images = false, $owner = false, $site_url = false) { if (!$owner) $owner = $_SESSION["uid"]; $res = trim($str); if (!$res) return ''; @@ -2644,7 +2708,7 @@ } if ($entry->nodeName == 'img') { - if (($owner && get_pref($link, "STRIP_IMAGES", $owner)) || + if (($owner && get_pref( "STRIP_IMAGES", $owner)) || $force_remove_images || $_SESSION["bw_limit"]) { $p = $doc->createElement('p'); @@ -2673,14 +2737,16 @@ } - $allowed_elements = array('a', 'address', 'audio', 'article', - 'b', 'big', 'blockquote', 'body', 'br', 'cite', 'center', - 'code', 'dd', 'del', 'details', 'div', 'dl', 'font', - 'dt', 'em', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', - 'header', 'html', 'i', 'img', 'ins', 'kbd', - 'li', 'nav', 'noscript', 'ol', 'p', 'pre', 'q', 's','small', - 'source', 'span', 'strike', 'strong', 'sub', 'summary', - 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', + $allowed_elements = array('a', 'address', 'audio', 'article', 'aside', + 'b', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', + 'caption', 'cite', 'center', 'code', 'col', 'colgroup', + 'data', 'dd', 'del', 'details', 'div', 'dl', 'font', + 'dt', 'em', 'footer', 'figure', 'figcaption', + 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'html', 'i', + 'img', 'ins', 'kbd', 'li', 'main', 'mark', 'nav', 'noscript', + 'ol', 'p', 'pre', 'q', 'ruby', 'rp', 'rt', 's', 'samp', 'section', + 'small', 'source', 'span', 'strike', 'strong', 'sub', 'summary', + 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'wbr', 'video' ); if ($_SESSION['hasSandbox']) $allowed_elements[] = 'iframe'; @@ -2739,7 +2805,7 @@ return $doc; } - function check_for_update($link) { + function check_for_update() { if (CHECK_FOR_NEW_VERSION && $_SESSION['access_level'] >= 10) { $version_url = "http://tt-rss.org/version.php?ver=" . VERSION . "&iid=" . sha1(SELF_URL_PATH); @@ -2759,7 +2825,7 @@ return false; } - function catchupArticlesById($link, $ids, $cmode, $owner_uid = false) { + function catchupArticlesById( $ids, $cmode, $owner_uid = false) { if (!$owner_uid) $owner_uid = $_SESSION["uid"]; if (count($ids) == 0) return; @@ -2773,32 +2839,32 @@ $ids_qpart = join(" OR ", $tmp_ids); if ($cmode == 0) { - db_query($link, "UPDATE ttrss_user_entries SET + db_query( "UPDATE ttrss_user_entries SET unread = false,last_read = NOW() WHERE ($ids_qpart) AND owner_uid = $owner_uid"); } else if ($cmode == 1) { - db_query($link, "UPDATE ttrss_user_entries SET + db_query( "UPDATE ttrss_user_entries SET unread = true WHERE ($ids_qpart) AND owner_uid = $owner_uid"); } else { - db_query($link, "UPDATE ttrss_user_entries SET + db_query( "UPDATE ttrss_user_entries SET unread = NOT unread,last_read = NOW() WHERE ($ids_qpart) AND owner_uid = $owner_uid"); } /* update ccache */ - $result = db_query($link, "SELECT DISTINCT feed_id FROM ttrss_user_entries + $result = db_query( "SELECT DISTINCT feed_id FROM ttrss_user_entries WHERE ($ids_qpart) AND owner_uid = $owner_uid"); while ($line = db_fetch_assoc($result)) { - ccache_update($link, $line["feed_id"], $owner_uid); + ccache_update( $line["feed_id"], $owner_uid); } } - function get_article_tags($link, $id, $owner_uid = 0, $tag_cache = false) { + function get_article_tags( $id, $owner_uid = 0, $tag_cache = false) { - $a_id = db_escape_string($link, $id); + $a_id = db_escape_string( $id); if (!$owner_uid) $owner_uid = $_SESSION["uid"]; @@ -2813,7 +2879,7 @@ /* check cache first */ if ($tag_cache === false) { - $result = db_query($link, "SELECT tag_cache FROM ttrss_user_entries + $result = db_query( "SELECT tag_cache FROM ttrss_user_entries WHERE ref_id = '$id' AND owner_uid = $owner_uid"); $tag_cache = db_fetch_result($result, 0, "tag_cache"); @@ -2825,7 +2891,7 @@ /* do it the hard way */ - $tmp_result = db_query($link, $query); + $tmp_result = db_query( $query); while ($tmp_line = db_fetch_assoc($tmp_result)) { array_push($tags, $tmp_line["tag_name"]); @@ -2833,9 +2899,9 @@ /* update the cache */ - $tags_str = db_escape_string($link, join(",", $tags)); + $tags_str = db_escape_string( join(",", $tags)); - db_query($link, "UPDATE ttrss_user_entries + db_query( "UPDATE ttrss_user_entries SET tag_cache = '$tags_str' WHERE ref_id = '$id' AND owner_uid = $owner_uid"); } @@ -2863,20 +2929,13 @@ return true; } - function render_login_form($link) { + function render_login_form() { + header('Cache-Control: public'); + require_once "login_form.php"; exit; } - // from http://developer.apple.com/internet/safari/faq.html - function no_cache_incantation() { - header("Expires: Mon, 22 Dec 1980 00:00:00 GMT"); // Happy birthday to me :) - header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified - header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); // HTTP/1.1 - header("Cache-Control: post-check=0, pre-check=0", false); - header("Pragma: no-cache"); // HTTP/1.0 - } - function format_warning($msg, $id = "") { global $link; return "
@@ -2913,7 +2972,7 @@ return vsprintf(__(array_shift($args)), $args); } - function format_inline_player($link, $url, $ctype) { + function format_inline_player( $url, $ctype) { $entry = ""; @@ -2922,19 +2981,12 @@ if (strpos($ctype, "audio/") === 0) { if ($_SESSION["hasAudio"] && (strpos($ctype, "ogg") !== false || - strpos($_SERVER['HTTP_USER_AGENT'], "Chrome") !== false || - strpos($_SERVER['HTTP_USER_AGENT'], "Safari") !== false )) { - - $id = 'AUDIO-' . uniqid(); + $_SESSION["hasMp3"])) { - $entry .= "