]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions.php
load stylesheets/scripts using helper functions in a few more places
[tt-rss.git] / include / functions.php
index 55896b66adcfb6debe44e6d3e07b363bf8b11fd5..f8c614ac7078a608cb13b9943a17606f917124c7 100644 (file)
@@ -1,6 +1,6 @@
 <?php
        define('EXPECTED_CONFIG_VERSION', 26);
-       define('SCHEMA_VERSION', 122);
+       define('SCHEMA_VERSION', 123);
 
        define('LABEL_BASE_INDEX', -1024);
        define('PLUGIN_FEED_BASE_INDEX', -128);
@@ -80,7 +80,8 @@
                                        "pt_BR" => "Portuguese/Brazil",
                                        "zh_CN" => "Simplified Chinese",
                                        "sv_SE" => "Svenska",
-                                       "fi_FI" => "Suomi");
+                                       "fi_FI" => "Suomi",
+                                       "tr_TR" => "Türkçe");
 
                return $tr;
        }
                        curl_setopt($ch, CURLOPT_ENCODING, "");
                        curl_setopt($ch, CURLOPT_REFERER, $url);
 
+                       if (!ini_get("safe_mode") && !ini_get("open_basedir")) {
+                               curl_setopt($ch, CURLOPT_COOKIEJAR, "/dev/null");
+                       }
+
+                       if (defined('_CURL_HTTP_PROXY')) {
+                               curl_setopt($ch, CURLOPT_PROXY, _CURL_HTTP_PROXY);
+                       }
+
                        if ($post_query) {
                                curl_setopt($ch, CURLOPT_POST, true);
                                curl_setopt($ch, CURLOPT_POSTFIELDS, $post_query);
                                $_SERVER["REDIRECT_SSL_CLIENT_V_END"] .
                                $_SERVER["REDIRECT_SSL_CLIENT_S_DN"]);
                }
+               if ($_SERVER["SSL_CLIENT_M_SERIAL"]) {
+                       return sha1($_SERVER["SSL_CLIENT_M_SERIAL"] .
+                               $_SERVER["SSL_CLIENT_V_START"] .
+                               $_SERVER["SSL_CLIENT_V_END"] .
+                               $_SERVER["SSL_CLIENT_S_DN"]);
+               }
                return "";
        }
 
 
                                $_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));
+                               $_SESSION["csrf_token"] = uniqid(rand(), true);
 
                                db_query("UPDATE ttrss_users SET last_login = NOW() WHERE id = " .
                                        $_SESSION["uid"]);
                        $_SESSION["auth_module"] = false;
 
                        if (!$_SESSION["csrf_token"]) {
-                               $_SESSION["csrf_token"] = sha1(uniqid(rand(), true));
+                               $_SESSION["csrf_token"] = uniqid(rand(), true);
                        }
 
                        $_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"];
        }
 
        function load_user_plugins($owner_uid) {
-               if ($owner_uid) {
+               if ($owner_uid && SCHEMA_VERSION >= 100) {
                        $plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
 
                        PluginHost::getInstance()->load($plugins, PluginHost::KIND_USER, $owner_uid);
                if (SINGLE_USER_MODE) {
                        @session_start();
                        authenticate_user("admin", null);
+                       startup_gettext();
                        load_user_plugins($_SESSION["uid"]);
                } else {
                        if (!validate_session()) $_SESSION["uid"] = false;
 
                                                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");
+                                                               FROM ttrss_user_labels2, ttrss_entries WHERE article_id = ref_id AND id = ref_id AND $date_qpart) > 0
+                                                               AND unread = true AND owner_uid = $owner_uid");
                                        }
 
                                } else if ($feed > 0) {
                        $intl = get_pref("FRESH_ARTICLE_MAX_AGE", $owner_uid);
 
                        if (DB_TYPE == "pgsql") {
-                               $match_part .= " AND updated > NOW() - INTERVAL '$intl hour' ";
+                               $match_part .= " AND date_entered > NOW() - INTERVAL '$intl hour' ";
                        } else {
-                               $match_part .= " AND updated > DATE_SUB(NOW(), INTERVAL $intl HOUR) ";
+                               $match_part .= " AND date_entered > DATE_SUB(NOW(), INTERVAL $intl HOUR) ";
                        }
 
                        $need_entries = true;
                                $from_where = "ttrss_entries.id = ttrss_user_entries.ref_id AND";
                        } else {
                                $from_qpart = "ttrss_user_entries";
+                               $from_where = "";
                        }
 
                        $query = "SELECT count(int_id) AS unread
 
                $search_query_part = "";
 
-               $keywords = explode(" ", $search);
+               $keywords = str_getcsv($search, " ");
                $query_keywords = array();
                $search_words = array();
 
                        }
 
 
-                       $content_query_part = "content, content AS content_preview, ";
+                       $content_query_part = "content, ";
 
 
                        if (is_numeric($feed)) {
 
                        if ($site_url) {
 
-                               if ($entry->hasAttribute('href'))
+                               if ($entry->hasAttribute('href')) {
                                        $entry->setAttribute('href',
                                                rewrite_relative_url($site_url, $entry->getAttribute('href')));
 
+                                       $entry->setAttribute('rel', 'noreferrer');
+                               }
+
                                if ($entry->hasAttribute('src')) {
                                        $src = rewrite_relative_url($site_url, $entry->getAttribute('src'));
 
                                header("Content-Type: text/html");
                                $rv['content'] .= "<html><head>
                                                <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
-                                               <title>Tiny Tiny RSS - ".$line["title"]."</title>
-                                               <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tt-rss.css\">
+                                               <title>Tiny Tiny RSS - ".$line["title"]."</title>".
+                                               stylesheet_tag("css/tt-rss.css").
+                                               stylesheet_tag("css/zoom.css").
+                                               stylesheet_tag("css/dijit.css")."
+
+                                               <link rel=\"shortcut icon\" type=\"image/png\" href=\"images/favicon.png\">
+                                               <link rel=\"icon\" type=\"image/png\" sizes=\"72x72\" href=\"images/favicon-72px.png\">
+
                                                <script type=\"text/javascript\">
                                                function openSelectedAttachment(elem) {
                                                        try {
                if (db_num_rows($result) == 1) {
                        return db_fetch_result($result, 0, "access_key");
                } else {
-                       $key = db_escape_string(sha1(uniqid(rand(), true)));
+                       $key = db_escape_string(uniqid(base_convert(rand(), 10, 36)));
 
                        $result = db_query("INSERT INTO ttrss_access_keys
                                (access_key, feed_id, is_cat, owner_uid)
                curl_setopt($curl, CURLOPT_TIMEOUT, 60);
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
 
+               if (defined('_CURL_HTTP_PROXY')) {
+                       curl_setopt($curl, CURLOPT_PROXY, _CURL_HTTP_PROXY);
+               }
+
                if ((OPENSSL_VERSION_NUMBER >= 0x0090808f) && (OPENSSL_VERSION_NUMBER < 0x10000000)) {
                        curl_setopt($curl, CURLOPT_SSLVERSION, 3);
                }
        function stylesheet_tag($filename) {
                $timestamp = filemtime($filename);
 
-               echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$filename?$timestamp\"/>\n";
+               return "<link rel=\"stylesheet\" type=\"text/css\" href=\"$filename?$timestamp\"/>\n";
        }
 
        function javascript_tag($filename) {
 
                if ($query) $timestamp .= "&$query";
 
-               echo "<script type=\"text/javascript\" charset=\"utf-8\" src=\"$filename?$timestamp\"></script>\n";
+               return "<script type=\"text/javascript\" charset=\"utf-8\" src=\"$filename?$timestamp\"></script>\n";
        }
 
        function calculate_dep_timestamp() {