]> git.wh0rd.org - tt-rss.git/blobdiff - functions.php
toggle no daemon warning @ runtime on refetch
[tt-rss.git] / functions.php
index 77414b13c4989c503e328405d622945273b4c68a..e4dc5e10bbccf49e2ccd8cb9074055b0e1ea7f5a 100644 (file)
@@ -9,6 +9,8 @@
        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'"); */
 
-                       $result = db_query($link, "DELETE FROM ttrss_user_entries WHERE 
-                               ttrss_entries.id = ref_id AND 
-                               marked = false AND 
-                               feed_id = '$feed_id' AND 
-                               ttrss_entries.date_entered < NOW() - INTERVAL '$purge_interval days'");
+                       $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 
+                                       marked = false AND 
+                                       feed_id = '$feed_id' AND 
+                                       ttrss_entries.date_entered < NOW() - INTERVAL '$purge_interval days'");
+
+                       } else {
+
+                               $result = db_query($link, "DELETE FROM ttrss_user_entries 
+                                       USING ttrss_entries 
+                                       WHERE ttrss_entries.id = ref_id AND 
+                                       marked = false AND 
+                                       feed_id = '$feed_id' AND 
+                                       ttrss_entries.date_entered < NOW() - INTERVAL '$purge_interval days'");
+                       }
 
                        $rows = pg_affected_rows($result);
                        
                } else {
+               
 /*                     $result = db_query($link, "DELETE FROM ttrss_user_entries WHERE
                                marked = false AND feed_id = '$feed_id' AND
                                (SELECT date_entered FROM ttrss_entries WHERE 
                                                        $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"]) {
        }
 
        function printFeedEntry($feed_id, $class, $feed_title, $unread, $icon_file, $link,
-               $rtl_content = false) {
+               $rtl_content = false, $last_updated = false, $last_error = false) {
 
                if (file_exists($icon_file) && filesize($icon_file) > 0) {
                                $feed_icon = "<img id=\"FIMG-$feed_id\" src=\"$icon_file\">";
                        $rtl_tag = "dir=\"ltr\"";
                }
 
-               $feed = "<a href=\"javascript:viewfeed('$feed_id', 0);\">$feed_title</a>";
+               if ($last_error) {
+                       $link_title = "Error: $last_error ($last_updated)";
+               } else if ($last_updated) {
+                       $link_title = "Updated: $last_updated";
+               }
+
+               $feed = "<a title=\"$link_title\" id=\"FEEDL-$feed_id\" href=\"javascript:viewfeed('$feed_id', 0);\">$feed_title</a>";
 
                print "<li id=\"FEEDR-$feed_id\" class=\"$class\">";
                if (get_pref($link, 'ENABLE_FEED_ICONS')) {
                db_query($link, "COMMIT");
 
        }
-       
-       function authenticate_user($link, $login, $password) {
 
-               $pwd_hash = 'SHA1:' . sha1($password);
+       function lookup_user_id($link, $user) {
 
-               $result = db_query($link, "SELECT id,login,access_level FROM ttrss_users WHERE 
-                       login = '$login' AND pwd_hash = '$pwd_hash'");
+               $result = db_query($link, "SELECT id FROM ttrss_users WHERE 
+                       login = '$login'");
 
                if (db_num_rows($result) == 1) {
-                       $_SESSION["uid"] = db_fetch_result($result, 0, "id");
-                       $_SESSION["name"] = db_fetch_result($result, 0, "login");
-                       $_SESSION["access_level"] = db_fetch_result($result, 0, "access_level");
+                       return db_fetch_result($result, 0, "id");
+               } else {
+                       return false;
+               }
+       }
+
+       function authenticate_user($link, $login, $password) {
 
-                       db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . 
-                               $_SESSION["uid"]);
+               if (!SINGLE_USER_MODE) {
 
-                       $user_theme = get_user_theme_path($link);
+                       $pwd_hash = 'SHA1:' . sha1($password);
+       
+                       $result = db_query($link, "SELECT id,login,access_level FROM ttrss_users WHERE 
+                               login = '$login' AND pwd_hash = '$pwd_hash'");
+       
+                       if (db_num_rows($result) == 1) {
+                               $_SESSION["uid"] = db_fetch_result($result, 0, "id");
+                               $_SESSION["name"] = db_fetch_result($result, 0, "login");
+                               $_SESSION["access_level"] = db_fetch_result($result, 0, "access_level");
+       
+                               db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . 
+                                       $_SESSION["uid"]);
+       
+                               $user_theme = get_user_theme_path($link);
+       
+                               $_SESSION["theme"] = $user_theme;
+                               $_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"];
+       
+                               initialize_user_prefs($link, $_SESSION["uid"]);
+       
+                               return true;
+                       }
+       
+                       return false;
 
-                       $_SESSION["theme"] = $user_theme;
-                       $_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"];
+               } else {
 
-                       initialize_user_prefs($link, $_SESSION["uid"]);
+                       $_SESSION["uid"] = 1;
+                       $_SESSION["name"] = "admin";
 
                        return true;
                }
-
-               return false;
-
        }
 
        function make_password($length = 8) {
        }
 
        function validate_session($link) {
-               if (SESSION_CHECK_ADDRESS && !DATABASE_BACKED_SESSIONS && $_SESSION["uid"]) {
+               if (SESSION_CHECK_ADDRESS && $_SESSION["uid"]) {
                        if ($_SESSION["ip_address"]) {
                                if ($_SESSION["ip_address"] != $_SERVER["REMOTE_ADDR"]) {
                                        return false;
 
        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;
                                update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
                        }
        }
+
+       function getAllCounters($link) {
+               getLabelCounters($link);
+               getFeedCounters($link);
+               getTagCounters($link);
+               getGlobalCounters($link);
+               if (get_pref($link, 'ENABLE_FEED_CATS')) {
+                       getCategoryCounters($link);
+               }
+       }       
+
+       function getCategoryCounters($link) {
+               $result = db_query($link, "SELECT cat_id,SUM((SELECT COUNT(int_id) 
+                               FROM ttrss_user_entries WHERE feed_id = ttrss_feeds.id 
+                                       AND unread = true)) AS unread FROM ttrss_feeds 
+                       WHERE 
+                               owner_uid = ".$_SESSION["uid"]." GROUP BY cat_id");
+
+               while ($line = db_fetch_assoc($result)) {
+                       $line["cat_id"] = sprintf("%d", $line["cat_id"]);
+                       print "<counter type=\"category\" id=\"".$line["cat_id"]."\" counter=\"".
+                               $line["unread"]."\"/>";
+               }
+       }
+
+       function getFeedUnread($link, $feed) {
+               $n_feed = sprintf("%d", $feed);
        
+               if ($n_feed == -1) {
+                       $match_part = "marked = true";
+               } else if ($feed > 0) {
+                       $match_part = "feed_id = '$n_feed'";
+               } else if ($feed < -10) {
+                       $label_id = -$feed - 11;
+
+                       $result = db_query($link, "SELECT sql_exp FROM ttrss_labels WHERE
+                               id = '$label_id' AND owner_uid = " . $_SESSION["uid"]);
+
+                       $match_part = db_fetch_result($result, 0, "sql_exp");
+               }
+
+               if ($match_part) {
+               
+                       $result = db_query($link, "SELECT count(int_id) AS unread 
+                               FROM ttrss_user_entries 
+                               WHERE   unread = true AND $match_part AND owner_uid = " . $_SESSION["uid"]);
+                               
+               } else {
+               
+                       $result = db_query($link, "SELECT COUNT(post_int_id) AS unread
+                               FROM ttrss_tags,ttrss_user_entries 
+                               WHERE tag_name = '$feed' AND post_int_id = int_id AND unread = true AND
+                                       ttrss_tags.owner_uid = " . $_SESSION["uid"]);
+               }
+               
+               $unread = db_fetch_result($result, 0, "unread");
+               return $unread;
+       }
+
+       /* FIXME this needs reworking */
+
+       function getGlobalUnread($link) {
+               $result = db_query($link, "SELECT count(id) as c_id FROM ttrss_entries,ttrss_user_entries
+                       WHERE unread = true AND 
+                       ttrss_user_entries.ref_id = ttrss_entries.id AND 
+                       owner_uid = " . $_SESSION["uid"]);
+               $c_id = db_fetch_result($result, 0, "c_id");
+               return $c_id;
+       }
+
+       function getGlobalCounters($link, $global_unread = -1) {
+               if ($global_unread == -1) {     
+                       $global_unread = getGlobalUnread($link);
+               }
+               print "<counter type=\"global\" id='global-unread' counter='$global_unread'/>";
+       }
+
+       function getTagCounters($link, $smart_mode = SMART_RPC_COUNTERS) {
+
+               if ($smart_mode) {
+                       if (!$_SESSION["tctr_last_value"]) {
+                               $_SESSION["tctr_last_value"] = array();
+                       }
+               }
+
+               $old_counters = $_SESSION["tctr_last_value"];
+
+               $tctrs_modified = false;
+
+/*             $result = db_query($link, "SELECT tag_name,count(ttrss_entries.id) AS count
+                       FROM ttrss_tags,ttrss_entries,ttrss_user_entries WHERE
+                       ttrss_user_entries.ref_id = ttrss_entries.id AND 
+                       ttrss_tags.owner_uid = ".$_SESSION["uid"]." AND
+                       post_int_id = ttrss_user_entries.int_id AND unread = true GROUP BY tag_name 
+               UNION
+                       select tag_name,0 as count FROM ttrss_tags
+                       WHERE ttrss_tags.owner_uid = ".$_SESSION["uid"]); */
+
+               $result = db_query($link, "SELECT tag_name,SUM((SELECT COUNT(int_id) 
+                       FROM ttrss_user_entries WHERE int_id = post_int_id 
+                               AND unread = true)) AS count FROM ttrss_tags 
+                       WHERE owner_uid = 2 GROUP BY tag_name ORDER BY tag_name");
+                       
+               $tags = array();
+
+               while ($line = db_fetch_assoc($result)) {
+                       $tags[$line["tag_name"]] += $line["count"];
+               }
+
+               foreach (array_keys($tags) as $tag) {
+                       $unread = $tags[$tag];                  
+
+                       $tag = htmlspecialchars($tag);
+
+                       if (!$smart_mode || $old_counters[$tag] != $unread) {                   
+                               $old_counters[$tag] = $unread;
+                               $tctrs_modified = true;
+                               print "<counter type=\"tag\" id=\"$tag\" counter=\"$unread\"/>";
+                       }
+
+               } 
+
+               if ($smart_mode && $tctrs_modified) {
+                       $_SESSION["tctr_last_value"] = $old_counters;
+               }
+
+       }
+
+       function getLabelCounters($link, $smart_mode = SMART_RPC_COUNTERS) {
+
+               if ($smart_mode) {
+                       if (!$_SESSION["lctr_last_value"]) {
+                               $_SESSION["lctr_last_value"] = array();
+                       }
+               }
+
+               $old_counters = $_SESSION["lctr_last_value"];
+               $lctrs_modified = false;
+
+               $result = db_query($link, "SELECT count(id) as count FROM ttrss_entries,ttrss_user_entries
+                       WHERE marked = true AND ttrss_user_entries.ref_id = ttrss_entries.id AND 
+                       unread = true AND owner_uid = ".$_SESSION["uid"]);
+
+               $count = db_fetch_result($result, 0, "count");
+
+               print "<counter type=\"label\" id=\"-1\" counter=\"$count\"/>";
+
+               $result = db_query($link, "SELECT owner_uid,id,sql_exp,description FROM
+                       ttrss_labels WHERE owner_uid = ".$_SESSION["uid"]." ORDER by description");
+       
+               while ($line = db_fetch_assoc($result)) {
+
+                       $id = -$line["id"] - 11;
+
+                       error_reporting (0);
+
+                       $tmp_result = db_query($link, "SELECT count(id) as count FROM ttrss_user_entries,ttrss_entries
+                               WHERE (" . $line["sql_exp"] . ") AND unread = true AND 
+                               ttrss_user_entries.ref_id = ttrss_entries.id AND 
+                               owner_uid = ".$_SESSION["uid"]);
+
+                       $count = db_fetch_result($tmp_result, 0, "count");
+
+                       if (!$smart_mode || $old_counters[$id] != $count) {     
+                               $old_counters[$id] = $count;
+                               $lctrs_modified = true;
+                               print "<counter type=\"label\" id=\"$id\" counter=\"$count\"/>";
+                       }
+
+                       error_reporting (DEFAULT_ERROR_LEVEL);
+               }
+
+               if ($smart_mode && $lctrs_modified) {
+                       $_SESSION["lctr_last_value"] = $old_counters;
+               }
+       }
+
+/*     function getFeedCounter($link, $id) {
+       
+               $result = db_query($link, "SELECT 
+                               count(id) as count,last_error
+                       FROM ttrss_entries,ttrss_user_entries,ttrss_feeds
+                       WHERE feed_id = '$id' AND unread = true
+                       AND ttrss_user_entries.feed_id = ttrss_feeds.id
+                       AND ttrss_user_entries.ref_id = ttrss_entries.id");
+       
+                       $count = db_fetch_result($result, 0, "count");
+                       $last_error = htmlspecialchars(db_fetch_result($result, 0, "last_error"));
+                       
+                       print "<counter type=\"feed\" id=\"$id\" counter=\"$count\" error=\"$last_error\"/>";           
+       } */
+
+       function getFeedCounters($link, $smart_mode = SMART_RPC_COUNTERS) {
+
+               if ($smart_mode) {
+                       if (!$_SESSION["fctr_last_value"]) {
+                               $_SESSION["fctr_last_value"] = array();
+                       }
+               }
+
+               $old_counters = $_SESSION["fctr_last_value"];
+
+               $result = db_query($link, "SELECT id,last_error,parent_feed,
+                       SUBSTRING(last_updated,1,19) AS last_updated,
+                       (SELECT count(id) 
+                               FROM ttrss_entries,ttrss_user_entries 
+                               WHERE feed_id = ttrss_feeds.id AND 
+                                       ttrss_user_entries.ref_id = ttrss_entries.id
+                               AND unread = true AND owner_uid = ".$_SESSION["uid"].") as count
+                       FROM ttrss_feeds WHERE owner_uid = ".$_SESSION["uid"] . "
+                               AND parent_feed IS NULL");
+
+               $fctrs_modified = false;
+
+               $short_date = get_pref($link, 'SHORT_DATE_FORMAT');
+
+               while ($line = db_fetch_assoc($result)) {
+               
+                       $id = $line["id"];
+                       $count = $line["count"];
+                       $last_error = htmlspecialchars($line["last_error"]);
+
+                       if (get_pref($link, 'HEADLINES_SMART_DATE')) {
+                               $last_updated = smart_date_time(strtotime($line["last_updated"]));
+                       } else {
+                               $last_updated = date($short_date, strtotime($line["last_updated"]));
+                       }                               
+
+                       $has_img = is_file(ICONS_DIR . "/$id.ico");
+
+                       $tmp_result = db_query($link,
+                               "SELECT id,COUNT(unread) AS unread
+                               FROM ttrss_feeds LEFT JOIN ttrss_user_entries 
+                                       ON (ttrss_feeds.id = ttrss_user_entries.feed_id) 
+                               WHERE parent_feed = '$id' AND unread = true GROUP BY ttrss_feeds.id");
+                       
+                       if (db_num_rows($tmp_result) > 0) {                             
+                               while ($l = db_fetch_assoc($tmp_result)) {
+                                       $count += $l["unread"];
+                               }
+                       }
+
+                       if (!$smart_mode || $old_counters[$id] != $count) {
+                               $old_counters[$id] = $count;
+                               $fctrs_modified = true;
+
+                               if ($last_error) {
+                                       $error_part = "error=\"$last_error\"";
+                               } else {
+                                       $error_part = "";
+                               }
+
+                               if ($has_img) {
+                                       $has_img_part = "hi=\"$has_img\"";
+                               } else {
+                                       $has_img_part = "";
+                               }                               
+
+                               print "<counter type=\"feed\" id=\"$id\" counter=\"$count\" $has_img_part $error_part updated=\"$last_updated\"/>";
+                       }
+               }
+
+               if ($smart_mode && $fctrs_modified) {
+                       $_SESSION["fctr_last_value"] = $old_counters;
+               }
+       }
+
+       function get_script_dt_add() {
+               if (strpos(VERSION, "99") === false) {
+                       return VERSION;
+               } else {
+                       return time();
+               }
+       }
+
+       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 "<param key=\"hide_read_feeds\" value=\"" . 
+                       sprintf("%d", get_pref($link, "HIDE_READ_FEEDS")) . "\"/>";
+
+               print "</init-params>";
+       }
+
+       function print_runtime_info($link) {
+               print "<runtime-info>";
+               if (ENABLE_UPDATE_DAEMON) {
+                       print "<param key=\"daemon_is_running\" value=\"".
+                               sprintf("%d", file_is_locked("update_daemon.lock")) . "\"/>";
+               }
+               print "</runtime-info>";
+       }
 ?>