]> git.wh0rd.org - tt-rss.git/blobdiff - classes/feeds.php
minor style updates to make 3panel headlines mode look closer to cdm
[tt-rss.git] / classes / feeds.php
index 44af9ae0bfe4c9e3bc5065293c8441c8966b7950..e9ab53e76ddf717e3012caf31b5dccee85727ed0 100644 (file)
@@ -43,14 +43,26 @@ class Feeds extends Handler_Protected {
                        $search_q = "";
                }
 
+               $reply .= "<span class=\"holder\">";
+
                $rss_link = htmlspecialchars(get_self_url_prefix() .
                        "/public.php?op=rss&id=$feed_id$cat_q$search_q");
 
                // right part
 
-               $reply .= "<span class='r'>";
-               $reply .= "<span id='selected_prompt'></span>";
-               $reply .= "<span id='feed_title'>";
+               $error_class = $error ? "error" : "";
+
+               $reply .= "<span class='r'>
+                       <a href=\"#\"
+                               title=\"".__("View as RSS feed")."\"
+                               onclick=\"displayDlg('".__("View as RSS")."','generatedFeed', '$feed_id:$is_cat:$rss_link')\">
+                               <img class=\"noborder\" src=\"images/pub_set.png\"></a>";
+
+
+#              $reply .= "<span>";
+               $reply .= "<span id='feed_title' class='$error_class'>";
+
+               $reply .= "</span>";
 
                if ($feed_site_url) {
                        $last_updated = T_sprintf("Last updated: %s",
@@ -61,7 +73,8 @@ class Feeds extends Handler_Protected {
                                truncate_string($feed_title,30)."</a>";
 
                        if ($error) {
-                               $reply .= " (<span class=\"error\" title=\"$error\">Error</span>)";
+                               $error = htmlspecialchars($error);
+                               $reply .= "&nbsp;<img title=\"$error\" src='images/error.png' alt='error' class=\"noborder\" style=\"vertical-align : middle\">";
                        }
 
                } else {
@@ -70,17 +83,14 @@ class Feeds extends Handler_Protected {
 
                $reply .= "</span>";
 
-               $reply .= "
-                       <a href=\"#\"
-                               title=\"".__("View as RSS feed")."\"
-                               onclick=\"displayDlg('".__("View as RSS")."','generatedFeed', '$feed_id:$is_cat:$rss_link')\">
-                               <img class=\"noborder\" style=\"vertical-align : middle\" src=\"images/pub_set.svg\"></a>";
-
-               $reply .= "</span>";
+#              $reply .= "</span>";
 
                // left part
 
-               $reply .= __('Select:')."
+               $reply .= "<span class=\"main\">";
+               $reply .= "<span id='selected_prompt'></span>";
+
+               $reply .= "
                        <a href=\"#\" onclick=\"$sel_all_link\">".__('All')."</a>,
                        <a href=\"#\" onclick=\"$sel_unread_link\">".__('Unread')."</a>,
                        <a href=\"#\" onclick=\"$sel_inv_link\">".__('Invert')."</a>,
@@ -129,14 +139,14 @@ class Feeds extends Handler_Protected {
 
                $reply .= "</select>";
 
-               //$reply .= "</div>";
-
                //$reply .= "</h2";
 
                foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINE_TOOLBAR_BUTTON) as $p) {
                         echo $p->hook_headline_toolbar_button($feed_id, $is_cat);
                }
 
+               $reply .= "</span></span>";
+
                return $reply;
        }
 
@@ -145,7 +155,7 @@ class Feeds extends Handler_Protected {
                                        $override_order = false, $include_children = false) {
 
                if (isset($_REQUEST["DevForceUpdate"]))
-                       header("Content-Type: text/plain");
+                       header("Content-Type: text/plain; charset=utf-8");
 
                $disable_cache = false;
 
@@ -252,6 +262,7 @@ class Feeds extends Handler_Protected {
                $last_error = $qfh_ret[3];
                $last_updated = strpos($qfh_ret[4], '1970-') === FALSE ?
                        make_local_datetime($qfh_ret[4], false) : __("Never");
+               $highlight_words = $qfh_ret[5];
 
                $vgroup_last_feed = $vgr_last_feed;
 
@@ -286,12 +297,18 @@ class Feeds extends Handler_Protected {
                        if ($_REQUEST["debug"]) $timing_info = print_checkpoint("PS", $timing_info);
 
                        $expand_cdm = get_pref('CDM_EXPANDED');
-                               
+
                        while ($line = $this->dbh->fetch_assoc($result)) {
-                               $line["content_preview"] =  "&mdash; " . truncate_string(strip_tags($line["content_preview"]),250);
+                               $line["content_preview"] =  "&mdash; " . truncate_string(strip_tags($line["content"]), 250);
+
                                foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_QUERY_HEADLINES) as $p) {
-                                       $line = $p->hook_query_headlines($line, 250);
+                                       $line = $p->hook_query_headlines($line, 250, false);
+                               }
+
+                               if (get_pref('SHOW_CONTENT_PREVIEW')) {
+                                       $content_preview =  $line["content_preview"];
                                }
+
                                $id = $line["id"];
                                $feed_id = $line["feed_id"];
                                $label_cache = $line["label_cache"];
@@ -310,7 +327,7 @@ class Feeds extends Handler_Protected {
 
                                if (!is_array($labels)) $labels = get_article_labels($id);
 
-                               $labels_str = "<span id=\"HLLCTR-$id\">";
+                               $labels_str = "<span class=\"HLLCTR-$id\">";
                                $labels_str .= format_article_labels($labels, $id);
                                $labels_str .= "</span>";
 
@@ -327,24 +344,24 @@ class Feeds extends Handler_Protected {
 
                                if (sql_bool_to_bool($line["marked"])) {
                                        $marked_pic = "<img
-                                               src=\"images/mark_set.svg\"
+                                               src=\"images/mark_set.png\"
                                                class=\"markedPic\" alt=\"Unstar article\"
                                                onclick='toggleMark($id)'>";
                                        $class .= " marked";
                                } else {
                                        $marked_pic = "<img
-                                               src=\"images/mark_unset.svg\"
+                                               src=\"images/mark_unset.png\"
                                                class=\"markedPic\" alt=\"Star article\"
                                                onclick='toggleMark($id)'>";
                                }
 
                                if (sql_bool_to_bool($line["published"])) {
-                                       $published_pic = "<img src=\"images/pub_set.svg\"
+                                       $published_pic = "<img src=\"images/pub_set.png\"
                                                class=\"pubPic\"
                                                        alt=\"Unpublish article\" onclick='togglePub($id)'>";
                                        $class .= " published";
                                } else {
-                                       $published_pic = "<img src=\"images/pub_unset.svg\"
+                                       $published_pic = "<img src=\"images/pub_unset.png\"
                                                class=\"pubPic\"
                                                alt=\"Publish article\" onclick='togglePub($id)'>";
                                }
@@ -364,10 +381,6 @@ class Feeds extends Handler_Protected {
                                $date_entered_fmt = T_sprintf("Imported at %s",
                                        make_local_datetime($line["date_entered"], false));
 
-                               if (get_pref('SHOW_CONTENT_PREVIEW') ) {
-                                               $content_preview =  $line["content_preview"];   
-                               }
-
                                $score = $line["score"];
 
                                $score_pic = "images/" . get_score_pic($score);
@@ -380,9 +393,9 @@ class Feeds extends Handler_Protected {
                                        title=\"$score\">";
 
                                if ($score > 500) {
-                                       $hlc_suffix = "H";
+                                       $hlc_suffix = "high";
                                } else if ($score < -100) {
-                                       $hlc_suffix = "L";
+                                       $hlc_suffix = "low";
                                } else {
                                        $hlc_suffix = "";
                                }
@@ -398,7 +411,7 @@ class Feeds extends Handler_Protected {
                                if ($has_feed_icon) {
                                        $feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"".ICONS_URL."/$feed_id.ico\" alt=\"\">";
                                } else {
-                                       $feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"images/pub_set.svg\" alt=\"\">";
+                                       $feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"images/pub_set.png\" alt=\"\">";
                                }
 
                                $entry_site_url = $line["site_url"];
@@ -424,12 +437,12 @@ class Feeds extends Handler_Protected {
 
                                                        $cur_feed_title = htmlspecialchars($cur_feed_title);
 
-                                                       $vf_catchup_link = "(<a class='catchup' onclick='catchupFeedInGroup($feed_id);' href='#'>".__('Mark as read')."</a>)";
+                                                       $vf_catchup_link = "<a class='catchup' onclick='catchupFeedInGroup($feed_id);' href='#'>".__('mark feed as read')."</a>";
 
-                                                       $reply['content'] .= "<div class='cdmFeedTitle'>".
-                                                               "<div style=\"float : right\">$feed_icon_img</div>".
-                                                               "<a class='title' href=\"#\" onclick=\"viewfeed($feed_id)\">".
-                                                               $line["feed_title"]."</a> $vf_catchup_link</div>";
+                                                       $reply['content'] .= "<div id='FTITLE-$feed_id' class='cdmFeedTitle'>".
+                                                               "<div style='float : right'>$feed_icon_img</div>".
+                                                               "<a class='title' href=\"#\" onclick=\"viewfeed($feed_id)\">".                                                          $line["feed_title"]."</a>
+                                                               $vf_catchup_link</div>";
 
                                                }
                                        }
@@ -437,7 +450,7 @@ class Feeds extends Handler_Protected {
                                        $mouseover_attrs = "onmouseover='postMouseIn(event, $id)'
                                                onmouseout='postMouseOut($id)'";
 
-                                       $reply['content'] .= "<div class='hl $class' id='RROW-$id' $mouseover_attrs>";
+                                       $reply['content'] .= "<div class='hl $class' orig-feed-id='$feed_id' id='RROW-$id' $mouseover_attrs>";
 
                                        $reply['content'] .= "<div class='hlLeft'>";
 
@@ -451,8 +464,8 @@ class Feeds extends Handler_Protected {
                                        $reply['content'] .= "</div>";
 
                                        $reply['content'] .= "<div onclick='return hlClicked(event, $id)'
-                                               class=\"hlTitle\"><span class='hlContent$hlc_suffix'>";
-                                       $reply['content'] .= "<a id=\"RTITLE-$id\" class=\"title\"
+                                               class=\"hlTitle\"><span class='hlContent $hlc_suffix'>";
+                                       $reply['content'] .= "<a id=\"RTITLE-$id\" class=\"title $hlc_suffix\"
                                                href=\"" . htmlspecialchars($line["link"]) . "\"
                                                onclick=\"\">" .
                                                truncate_string($line["title"], 200);
@@ -467,17 +480,18 @@ class Feeds extends Handler_Protected {
 
                                        $reply['content'] .= "</div>";
 
-                                       $reply['content'] .= "<span class=\"hlUpdated\">";
-
                                        if (!get_pref('VFEED_GROUP_BY_FEED')) {
                                                if (@$line["feed_title"]) {
                                                        $rgba = @$rgba_cache[$feed_id];
 
-                                                       $reply['content'] .= "<a class=\"hlFeed\" style=\"background : rgba($rgba, 0.3)\" href=\"#\" onclick=\"viewfeed($feed_id)\">".
-                                                               truncate_string($line["feed_title"],30)."</a>";
+                                                       $reply['content'] .= "<span class=\"hlFeed\"><a style=\"background : rgba($rgba, 0.3)\" href=\"#\" onclick=\"viewfeed($feed_id)\">".
+                                                               truncate_string($line["feed_title"],30)."</a></span>";
                                                }
                                        }
 
+
+                                       $reply['content'] .= "<span class=\"hlUpdated\">";
+
                                        $reply['content'] .= "<div title='$date_entered_fmt'>$updated_fmt</div>
                                                </span>";
 
@@ -504,7 +518,7 @@ class Feeds extends Handler_Protected {
                                                $tags = false;
 
                                        $line["content"] = sanitize($line["content"],
-                                                       sql_bool_to_bool($line['hide_images']), false, $entry_site_url);
+                                                       sql_bool_to_bool($line['hide_images']), false, $entry_site_url, $highlight_words, $line["id"]);
 
                                        foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_CDM) as $p) {
                                                $line = $p->hook_render_article_cdm($line);
@@ -518,7 +532,7 @@ class Feeds extends Handler_Protected {
 
                                                        $cur_feed_title = htmlspecialchars($cur_feed_title);
 
-                                                       $vf_catchup_link = "(<a class='catchup' onclick='javascript:catchupFeedInGroup($feed_id);' href='#'>".__('mark as read')."</a>)";
+                                                       $vf_catchup_link = "<a class='catchup' onclick='catchupFeedInGroup($feed_id);' href='#'>".__('mark feed as read')."</a>";
 
                                                        $has_feed_icon = feed_has_icon($feed_id);
 
@@ -528,7 +542,7 @@ class Feeds extends Handler_Protected {
                                                                //$feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\" alt=\"\">";
                                                        }
 
-                                                       $reply['content'] .= "<div class='cdmFeedTitle'>".
+                                                       $reply['content'] .= "<div id='FTITLE-$feed_id' class='cdmFeedTitle'>".
                                                                "<div style=\"float : right\">$feed_icon_img</div>".
                                                                "<a href=\"#\" class='title' onclick=\"viewfeed($feed_id)\">".
                                                                $line["feed_title"]."</a> $vf_catchup_link</div>";
@@ -540,8 +554,8 @@ class Feeds extends Handler_Protected {
 
                                        $expanded_class = $expand_cdm ? "expanded" : "expandable";
 
-                                       $reply['content'] .= "<div class=\"cdm $expanded_class $class\"
-                                               id=\"RROW-$id\" $mouseover_attrs>";
+                                       $reply['content'] .= "<div class=\"cdm $hlc_suffix $expanded_class $class\"
+                                               id=\"RROW-$id\" orig-feed-id='$feed_id' $mouseover_attrs>";
 
                                        $reply['content'] .= "<div class=\"cdmHeader\" style=\"$row_background\">";
                                        $reply['content'] .= "<div style=\"vertical-align : middle\">";
@@ -555,10 +569,17 @@ class Feeds extends Handler_Protected {
 
                                        $reply['content'] .= "</div>";
 
+                                       if ($highlight_words && count($highlight_words > 0)) {
+                                               foreach ($highlight_words as $word) {
+                                                       $line["title"] = preg_replace("/(\Q$word\E)/i",
+                                                               "<span class=\"highlight\">$1</span>", $line["title"]);
+                                               }
+                                       }
+
                                        $reply['content'] .= "<span id=\"RTITLE-$id\"
                                                onclick=\"return cdmClicked(event, $id);\"
-                                               class=\"titleWrap$hlc_suffix\">
-                                               <a class=\"title\"
+                                               class=\"titleWrap $hlc_suffix\">
+                                               <a class=\"title $hlc_suffix\"
                                                target=\"_blank\" href=\"".
                                                htmlspecialchars($line["link"])."\">".
                                                $line["title"] .
@@ -575,7 +596,7 @@ class Feeds extends Handler_Protected {
                                        else
                                                $excerpt_hidden = "style=\"display : none\"";
 
-                                       $reply['content'] .= "<span $excerpt_hidden id=\"CEXC-$id\" class=\"cdmExcerpt\">" . $line["content_preview"] . "</span>";
+                                       $reply['content'] .= "<span $excerpt_hidden id=\"CEXC-$id\" class=\"cdmExcerpt\">" . $content_preview . "</span>";
 
                                        $reply['content'] .= "</span>";
 
@@ -616,7 +637,9 @@ class Feeds extends Handler_Protected {
                                        }
                                        $reply['content'] .= "</div>";
 
-                                       $reply['content'] .= "<div class=\"cdmContentInner\">";
+                                       if (!$line['lang']) $line['lang'] = 'en';
+
+                                       $reply['content'] .= "<div class=\"cdmContentInner\" lang=\"".$line['lang']."\">";
 
                        if ($line["orig_feed_id"]) {
 
@@ -639,7 +662,7 @@ class Feeds extends Handler_Protected {
                                                        $reply['content'] .= "&nbsp;";
 
                                                        $reply['content'] .= "<a target='_blank' href='" . htmlspecialchars($tmp_line['feed_url']) . "'>";
-                                                       $reply['content'] .= "<img title='".__('Feed URL')."'class='tinyFeedIcon' src='images/pub_unset.svg'></a>";
+                                                       $reply['content'] .= "<img title='".__('Feed URL')."'class='tinyFeedIcon' src='images/pub_unset.png'></a>";
 
                                                        $reply['content'] .= "</div>";
                                                }
@@ -686,10 +709,13 @@ class Feeds extends Handler_Protected {
                                                } else {
                                                        $comments_url = htmlspecialchars($line["link"]);
                                                }
-                                               $entry_comments = "<a target='_blank' href=\"$comments_url\">$num_comments comments</a>";
+                                               $entry_comments = "<a class=\"postComments\"
+                                                       target='_blank' href=\"$comments_url\">$num_comments ".
+                                                       _ngettext("comment", "comments", $num_comments)."</a>";
+
                                        } else {
                                                if ($line["comments"] && $line["link"] != $line["comments"]) {
-                                                       $entry_comments = "<a target='_blank' href=\"".htmlspecialchars($line["comments"])."\">comments</a>";
+                                                       $entry_comments = "<a class=\"postComments\" target='_blank' href=\"".htmlspecialchars($line["comments"])."\">".__("comments")."</a>";
                                                }
                                        }
 
@@ -707,7 +733,7 @@ class Feeds extends Handler_Protected {
                                        $reply['content'] .= "</div>";
                                        $reply['content'] .= "</div>";
 
-                                       $reply['content'] .= "</div><hr/>";
+                                       $reply['content'] .= "</div>";
 
                                        $reply['content'] .= "</div>";
 
@@ -864,7 +890,7 @@ class Feeds extends Handler_Protected {
                        $override_order = "ttrss_entries.title";
                        break;
                case "date_reverse":
-                       $override_order = "date_entered, updated";
+                       $override_order = "score DESC, date_entered, updated";
                        break;
                case "feed_dates":
                        $override_order = "updated DESC";
@@ -960,6 +986,10 @@ class Feeds extends Handler_Protected {
                print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
                print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"addfeed\">";
 
+               print "<div id='fadd_multiple_notify' style='display : none'>";
+               print_notice("Provided URL is a HTML page referencing multiple feeds, please select required feed from the dropdown menu below.");
+               print "<p></div>";
+
                print "<div class=\"dlgSec\">".__("Feed or site URL")."</div>";
                print "<div class=\"dlgSecCont\">";
 
@@ -1129,7 +1159,7 @@ class Feeds extends Handler_Protected {
 
                if (!SPHINX_ENABLED) {
                        print "<div style=\"float : left\">
-                               <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/wiki/SearchSyntax\">Search syntax</a>
+                               <a class=\"visibleLink\" target=\"_blank\" href=\"http://tt-rss.org/wiki/SearchSyntax\">".__("Search syntax")."</a>
                                </div>";
                }