]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions.php
automatically add active article title in create filter dialog
[tt-rss.git] / include / functions.php
index 27c24f8ed1556ebce51925424b9b75353b1f5fe2..96b502d58554076c8043d98cc2a0e31e59eb0725 100644 (file)
                }
        }
 
-       function catchup_feed($link, $feed, $cat_view, $owner_uid = false) {
+       function catchup_feed($link, $feed, $cat_view, $owner_uid = false, $max_id = false) {
 
                        if (!$owner_uid) $owner_uid = $_SESSION['uid'];
 
                        //if (preg_match("/^-?[0-9][0-9]*$/", $feed) != false) {
 
+                       $ref_check_qpart = ($max_id &&
+                               !get_pref($link, 'REVERSE_HEADLINES')) ? "ref_id <= '$max_id'" : "true";
+
                        if (is_numeric($feed)) {
                                if ($cat_view) {
 
 
                                                        db_query($link, "UPDATE ttrss_user_entries
                                                                SET unread = false,last_read = NOW()
-                                                               WHERE feed_id = '$tmp_feed' AND owner_uid = $owner_uid");
+                                                               WHERE feed_id = '$tmp_feed'
+                                                               AND $ref_check_qpart
+                                                               AND owner_uid = $owner_uid");
                                                }
                                        } else if ($feed == -2) {
 
                                                db_query($link, "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 owner_uid = $owner_uid");
+                                                               AND $ref_check_qpart
+                                                               AND unread = true AND owner_uid = $owner_uid");
                                        }
 
                                } else if ($feed > 0) {
 
                                        db_query($link, "UPDATE ttrss_user_entries
                                                        SET unread = false,last_read = NOW()
-                                                       WHERE feed_id = '$feed' AND owner_uid = $owner_uid");
+                                                       WHERE feed_id = '$feed'
+                                                       AND $ref_check_qpart
+                                                       AND owner_uid = $owner_uid");
 
                                } else if ($feed < 0 && $feed > -10) { // special, like starred
 
                                        if ($feed == -1) {
                                                db_query($link, "UPDATE ttrss_user_entries
                                                        SET unread = false,last_read = NOW()
-                                                       WHERE marked = true AND owner_uid = $owner_uid");
+                                                       WHERE marked = true
+                                                       AND $ref_check_qpart
+                                                       AND owner_uid = $owner_uid");
                                        }
 
                                        if ($feed == -2) {
                                                db_query($link, "UPDATE ttrss_user_entries
                                                        SET unread = false,last_read = NOW()
-                                                       WHERE published = true AND owner_uid = $owner_uid");
+                                                       WHERE published = true
+                                                       AND $ref_check_qpart
+                                                       AND owner_uid = $owner_uid");
                                        }
 
                                        if ($feed == -3) {
                                        if ($feed == -4) {
                                                db_query($link, "UPDATE ttrss_user_entries
                                                        SET unread = false,last_read = NOW()
-                                                       WHERE owner_uid = $owner_uid");
+                                                       WHERE $ref_check_qpart AND owner_uid = $owner_uid");
                                        }
 
                                } else if ($feed < -10) { // label
                                        db_query($link, "UPDATE ttrss_user_entries, ttrss_user_labels2
                                                SET unread = false, last_read = NOW()
                                                        WHERE label_id = '$label_id' AND unread = true
+                                                       AND $ref_check_qpart
                                                        AND owner_uid = '$owner_uid' AND ref_id = article_id");
 
                                }
                                while ($line = db_fetch_assoc($result)) {
                                        db_query($link, "UPDATE ttrss_user_entries SET
                                                unread = false, last_read = NOW()
-                                               WHERE int_id = " . $line["post_int_id"]);
+                                               WHERE $ref_check_qpart AND int_id = " . $line["post_int_id"]);
                                }
                                db_query($link, "COMMIT");
                        }
                        } else if ($feed == 0 && !$cat_view) { // archive virtual feed
                                $query_strategy_part = "feed_id IS NULL";
                        } else if ($feed == 0 && $cat_view) { // uncategorized
-                               $query_strategy_part = "cat_id IS NULL";
+                               $query_strategy_part = "cat_id IS NULL AND feed_id IS NOT NULL";
                                $vfeed_query_part = "ttrss_feeds.title AS feed_title,";
                        } else if ($feed == -1) { // starred virtual feed
                                $query_strategy_part = "marked = true";
 
                        if ($tag_cache === false) {
                                $result = db_query($link, "SELECT tag_cache FROM ttrss_user_entries
-                                       WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
+                                       WHERE ref_id = '$id' AND owner_uid = $owner_uid");
 
                                $tag_cache = db_fetch_result($result, 0, "tag_cache");
                        }
 
                                db_query($link, "UPDATE ttrss_user_entries
                                        SET tag_cache = '$tags_str' WHERE ref_id = '$id'
-                                       AND owner_uid = " . $_SESSION["uid"]);
+                                       AND owner_uid = $owner_uid");
                        }
 
                        if ($memcache) $memcache->add($obj_id, $tags, 0, 3600);
                return $entry;
        }
 
-       function format_article($link, $id, $mark_as_read = true, $zoom_mode = false) {
+       function format_article($link, $id, $mark_as_read = true, $zoom_mode = false, $owner_uid = false) {
+
+               if (!$owner_uid) $owner_uid = $_SESSION["uid"];
 
                $rv = array();
 
                //if (!$zoom_mode) { print "<article id='$id'><![CDATA["; };
 
                $result = db_query($link, "SELECT rtl_content, always_display_enclosures FROM ttrss_feeds
-                       WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
+                       WHERE id = '$feed_id' AND owner_uid = $owner_uid");
 
                if (db_num_rows($result) == 1) {
                        $rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content"));
                if ($mark_as_read) {
                        $result = db_query($link, "UPDATE ttrss_user_entries
                                SET unread = false,last_read = NOW()
-                               WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
+                               WHERE ref_id = '$id' AND owner_uid = $owner_uid");
 
-                       ccache_update($link, $feed_id, $_SESSION["uid"]);
+                       ccache_update($link, $feed_id, $owner_uid);
                }
 
                $result = db_query($link, "SELECT title,link,content,feed_id,comments,int_id,
                        orig_feed_id,
                        note
                        FROM ttrss_entries,ttrss_user_entries
-                       WHERE   id = '$id' AND ref_id = id AND owner_uid = " . $_SESSION["uid"]);
+                       WHERE   id = '$id' AND ref_id = id AND owner_uid = $owner_uid");
 
                if ($result) {
 
                        $rv['content'] .= "<div id=\"PTITLE-$id\" style=\"display : none\">" .
                                truncate_string(strip_tags($line['title']), 15) . "</div>";
 
+                       $rv['content'] .= "<div id=\"PTITLE-FULL-$id\" style=\"display : none\">" .
+                               strip_tags($line['title']) . "</div>";
+
                        $rv['content'] .= "<div class=\"postReply\" id=\"POST-$id\">";
 
                        $rv['content'] .= "<div onclick=\"return postClicked(event, $id)\"
                        }
 
                        $parsed_updated = make_local_datetime($link, $line["updated"], true,
-                               false, true);
+                               $owner_uid, true);
 
                        $rv['content'] .= "<div class=\"postDate$rtl_class\">$parsed_updated</div>";
 
                        if ($line["link"]) {
-                               $rv['content'] .= "<div clear='both'><a target='_blank'
+                               $rv['content'] .= "<div class='postTitle' clear='both'><a target='_blank'
                                        title=\"".htmlspecialchars($line['title'])."\"
                                        href=\"" .
                                        $line["link"] . "\">" .
                                        truncate_string($line["title"], 100) .
                                        "<span class='author'>$entry_author</span></a></div>";
                        } else {
-                               $rv['content'] .= "<div clear='both'>" . $line["title"] . "$entry_author</div>";
+                               $rv['content'] .= "<div class='postTitle' clear='both'>" . $line["title"] . "$entry_author</div>";
                        }
 
                        $tag_cache = $line["tag_cache"];
 
                        if (!$tag_cache)
-                               $tags = get_article_tags($link, $id);
+                               $tags = get_article_tags($link, $id, $owner_uid);
                        else
                                $tags = explode(",", $tag_cache);
 
 
                        if (!$entry_comments) $entry_comments = "&nbsp;"; # placeholder
 
-                       $rv['content'] .= "<div style='float : right'>
+                       $rv['content'] .= "<div class='postTags' style='float : right'>
                                <img src='".theme_image($link, 'images/tag.png')."'
                                class='tagsPic' alt='Tags' title='Tags'>&nbsp;";
 
 
                        $rv['content'] .= "<div class=\"postContent\">";
 
-                       $article_content = sanitize($link, $line["content"], false, false,
+                       $article_content = sanitize($link, $line["content"], false, $owner_uid,
                                $feed_site_url);
 
                        $rv['content'] .= $article_content;