]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions.php
Merge branch 'hookhead' of git://github.com/justauserx/Tiny-Tiny-RSS into justauserx...
[tt-rss.git] / include / functions.php
index a4b604e7dfbeaa0ee1b4e3b20887182efe6164f0..8c25d9008be8df86243d08abc09617bea668091d 100644 (file)
                if ($_SESSION["uid"] && get_schema_version() >= 120) {
                        $pref_lang = get_pref("USER_LANGUAGE", $_SESSION["uid"]);
 
-                       if ($pref_lang) {
+                       if ($pref_lang && $pref_lang != 'auto') {
                                $lang = $pref_lang;
                        }
                }
                $fp = fopen(LOCK_DIRECTORY . "/$filename", "w");
 
                if ($fp && flock($fp, LOCK_EX | LOCK_NB)) {
+                       $stat_h = fstat($fp);
+                       $stat_f = stat(LOCK_DIRECTORY . "/$filename");
+
+                       if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
+                               if ($stat_h["ino"] != $stat_f["ino"] ||
+                                               $stat_h["dev"] != $stat_f["dev"]) {
+
+                                       return false;
+                               }
+                       }
+
                        if (function_exists('posix_getpid')) {
                                fwrite($fp, posix_getpid() . "\n");
                        }
                        return "images/archive.png";
                        break;
                case -1:
-                       return "images/mark_set.svg";
+                       return "images/star.png";
                        break;
                case -2:
-                       return "images/pub_set.svg";
+                       return "images/feed.png";
                        break;
                case -3:
                        return "images/fresh.png";
                        break;
                case -4:
-                       return "images/tag.png";
+                       return "images/folder.png";
                        break;
                case -6:
-                       return "images/recently_read.png";
+                       return "images/time.png";
                        break;
                default:
                        if ($id < LABEL_BASE_INDEX) {
                $params["max_feed_id"] = (int) $max_feed_id;
                $params["num_feeds"] = (int) $num_feeds;
 
-               $params["collapsed_feedlist"] = (int) get_pref("_COLLAPSED_FEEDLIST");
                $params["hotkeys"] = get_hotkeys_map();
 
                $params["csrf_token"] = $_SESSION["csrf_token"];
                                }
                        }
 
-                       $content_query_part = "content as content_preview, cached_content, ";
+
+                       $content_query_part = "content, content AS content_preview, cached_content, ";
+
 
                        if (is_numeric($feed)) {
 
        function format_warning($msg, $id = "") {
                global $link;
                return "<div class=\"warning\" id=\"$id\">
-                       <span><img src=\"images/sign_excl.svg\"></span><span>$msg</span></div>";
+                       <span><img src=\"images/alert.png\"></span><span>$msg</span></div>";
        }
 
        function format_notice($msg, $id = "") {
                global $link;
                return "<div class=\"notice\" id=\"$id\">
-                       <span><img src=\"images/sign_info.svg\"></span><span>$msg</span></div>";
+                       <span><img src=\"images/information.png\"></span><span>$msg</span></div>";
        }
 
        function format_error($msg, $id = "") {
                global $link;
                return "<div class=\"error\" id=\"$id\">
-                       <span><img src=\"images/sign_excl.svg\"></span><span>$msg</span></div>";
+                       <span><img src=\"images/alert.png\"></span><span>$msg</span></div>";
        }
 
        function print_notice($msg) {
                        if ($_SESSION["hasAudio"] && (strpos($ctype, "ogg") !== false ||
                                $_SESSION["hasMp3"])) {
 
-                               $entry .= "<audio controls>
+                               $entry .= "<audio preload=\"none\" controls>
                                        <source type=\"$ctype\" src=\"$url\"></source>
                                        </audio>";
 
                        $line["tags"] = get_article_tags($id, $owner_uid, $line["tag_cache"]);
                        unset($line["tag_cache"]);
 
-                       $line["content"] = sanitize($line["content"], false, $owner_uid,        $line["site_url"]);
+                       $line["content"] = sanitize($line["content"],
+                               sql_bool_to_bool($line['hide_images']),
+                               $owner_uid, $line["site_url"]);
 
                        foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE) as $p) {
                                $line = $p->hook_render_article($line);
                        $maxtags = min(5, count($tags));
 
                        for ($i = 0; $i < $maxtags; $i++) {
-                               $tags_str .= "<a class=\"tag\" href=\"#\" onclick=\"viewfeed('".$tags[$i]."'\")>" . $tags[$i] . "</a>, ";
+                               $tags_str .= "<a class=\"tag\" href=\"#\" onclick=\"viewfeed('".$tags[$i]."')\">" . $tags[$i] . "</a>, ";
                        }
 
                        $tags_str = mb_substr($tags_str, 0, mb_strlen($tags_str)-2);
         * @return string Absolute URL
         */
        function rewrite_relative_url($url, $rel_url) {
-               if (strpos($rel_url, "magnet:") === 0) {
+               if (strpos($rel_url, ":") !== false) {
                        return $rel_url;
                } else if (strpos($rel_url, "://") !== false) {
                        return $rel_url;
 
                $sphinxpair = explode(":", SPHINX_SERVER, 2);
 
-               $sphinxClient->SetServer($sphinxpair[0], $sphinxpair[1]);
+               $sphinxClient->SetServer($sphinxpair[0], (int)$sphinxpair[1]);
                $sphinxClient->SetConnectTimeout(1);
 
                $sphinxClient->SetFieldWeights(array('title' => 70, 'content' => 30,
                        $reg_qpart = "REGEXP";
 
                foreach ($filter["rules"] AS $rule) {
+                       $rule['reg_exp'] = str_replace('/', '\/', $rule["reg_exp"]);
                        $regexp_valid = preg_match('/' . $rule['reg_exp'] . '/',
                                $rule['reg_exp']) !== FALSE;