]> git.wh0rd.org - tt-rss.git/blobdiff - functions.php
move some cookies to init-params
[tt-rss.git] / functions.php
index be95caa04b9f046f6dcdedc069644d89ed08e7ae..30f309dd3c8ba4d9bf26fab1367f4b68f416df47 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';
 
@@ -24,7 +26,9 @@
                                (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>";
+       }
 ?>