]> git.wh0rd.org - tt-rss.git/blobdiff - functions.php
compat theme: properly reflow container height
[tt-rss.git] / functions.php
index 2c073b46707643e684c47f0683fcc145a4ce527b..1b92f94409ef62065c8d5e2c361f35a4b6437457 100644 (file)
                                _debug("update_rss_feed: loading filters...");
                        }
 
-                       $filters = array();
-
-                       $result = db_query($link, "SELECT reg_exp,
-                               ttrss_filter_types.name AS name,
-                               ttrss_filter_actions.name AS action,
-                               inverse,
-                               action_param
-                               FROM ttrss_filters,ttrss_filter_types,ttrss_filter_actions WHERE                                        
-                                       enabled = true AND
-                                       owner_uid = $owner_uid AND
-                                       ttrss_filter_types.id = filter_type AND
-                                       ttrss_filter_actions.id = action_id AND
-                               (feed_id IS NULL OR feed_id = '$feed') ORDER BY reg_exp");
-
-                       while ($line = db_fetch_assoc($result)) {
-                               if (!$filters[$line["name"]]) $filters[$line["name"]] = array();
-
-                               $filter["reg_exp"] = $line["reg_exp"];
-                               $filter["action"] = $line["action"];
-                               $filter["action_param"] = $line["action_param"];
-                               $filter["inverse"] = sql_bool_to_bool($line["inverse"]);
-                       
-                               array_push($filters[$line["name"]], $filter);
-                       }
+                       $filters = load_filters($link, $feed, $owner_uid);
 
                        if ($use_simplepie) {
                                $iterator = $rss->get_items();
                                                        $last_read_qpart = 'NOW()';
                                                }                                               
 
-                                               if (find_article_filter($article_filters, 'mark')) {
+                                               if (find_article_filter($article_filters, 'mark') || $score > 1000) {
                                                        $marked = 'true';
                                                } else {
                                                        $marked = 'false';
                } else if ($id == -3) {
                        return __("Fresh articles");
                } else if ($id < -10) {
-                       $label_id = -10 - $id;
+                       $label_id = -$id - 11;
                        $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");
                                $order_by = "updated DESC";
                        }
 
+                       $order_by = "score DESC, $order_by";
+
                        if ($override_order) {
                                $order_by = $override_order;
                        }
        
                        } else if ($feed == -1) {
                                $feed_title = __("Starred articles");
+                               if ($search) {  $feed_title = __("Searched for") . " $search ($feed_title)"; }
                        } else if ($feed == -2) {
                                $feed_title = __("Published articles");
+                               if ($search) {  $feed_title = __("Searched for") . " $search ($feed_title)"; }
                        } else if ($feed == -3) {
                                $feed_title = __("Fresh articles");
+                               if ($search) {  $feed_title = __("Searched for") . " $search ($feed_title)"; }
                        } else if ($feed < -10) {
                                $label_id = -$feed - 11;
                                $result = db_query($link, "SELECT description FROM ttrss_labels
                                        WHERE
                                        $group_limit_part
                                        ttrss_feeds.hidden = false AND 
-                                       score >= -500 AND
                                        ttrss_user_entries.feed_id = ttrss_feeds.id AND
                                        ttrss_user_entries.ref_id = ttrss_entries.id AND
                                        ttrss_user_entries.owner_uid = '$owner_uid' AND
                                                ttrss_entries,ttrss_user_entries,ttrss_tags
                                        WHERE
                                                ref_id = ttrss_entries.id AND 
-                                               score >= -500 AND
                                                ttrss_user_entries.owner_uid = '$owner_uid' AND
                                                post_int_id = int_id AND tag_name = '$feed' AND
                                                $view_query_part
                        if (!$dashboard_menu) {
 
                                if (strpos($_SESSION["client.userAgent"], "MSIE") === false) {
-       
+
                                        print "<td class=\"headlineActions$rtl_cpart\">
                                                <ul class=\"headlineDropdownMenu\">
                                                <li class=\"top2\">
                                                        <a href=\"$sel_unread_link\">".__('Unread')."</a>,
                                                        <a href=\"$sel_none_link\">".__('None')."</a></li>
                                                <li class=\"vsep\">&nbsp;</li>
-                                               <li class=\"top\">".__('Toggle')."<ul>
-                                                       <li onclick=\"$tog_unread_link\">".__('Unread')."</li>
-                                                       <li onclick=\"$tog_marked_link\">".__('Starred')."</li>
-                                                       <li onclick=\"$tog_published_link\">".__('Published')."</li>
-                                                       </ul></li>
-                                               <li class=\"vsep\">&nbsp;</li>
-                                               <li class=\"top\">".__('Mark as read')."<ul>
-                                                       <li onclick=\"$catchup_sel_link\">".__('Selection')."</li>
-                                                       <!-- <li onclick=\"$catchup_page_link\">".__('This page')."</li> -->";
-       
-                                       if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) {
-       
-                                       print "
+                                               <li class=\"top\">".__('Actions...')."<ul>
+                                                       <li><span class=\"insensitive\">".__('Selection toggle:')."</span></li>
+                                                       <li onclick=\"$tog_unread_link\">&nbsp;&nbsp;".__('Unread')."</li>
+                                                       <li onclick=\"$tog_marked_link\">&nbsp;&nbsp;".__('Starred')."</li>
+                                                       <li onclick=\"$tog_published_link\">&nbsp;&nbsp;".__('Published')."</li>
                                                        <li><span class=\"insensitive\">--------</span></li>
-                                                       <li onclick=\"catchupRelativeToArticle(0)\">".__("Above active article")."</li>
-                                                       <li onclick=\"catchupRelativeToArticle(1)\">".__("Below active article")."</li>
-                                                       <li><span class=\"insensitive\">--------</span></li>";
-                                       }
+                                                       <li><span class=\"insensitive\">".__('Mark as read:')."</span></li>
+                                                       <li onclick=\"$catchup_sel_link\">&nbsp;&nbsp;".__('Selection')."</li>";
+
+/*                             if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) {
        
                                        print "
-                                                       <li onclick=\"$catchup_feed_link\">".__('Entire feed')."</li></ul></li>
-                                               ";
-       
-                                               $enable_pagination = get_pref($link, "_PREFS_ENABLE_PAGINATION");
-       
-                                               if ($limit != 0 && !$search && $enable_pagination) {
-                                                       print "
-                                                       <li class=\"vsep\">&nbsp;</li>
-                                                       <li class=\"top\"><a href=\"$page_next_link\">".__('Next page')."</a><ul>
-                                                               <li onclick=\"$page_prev_link\">".__('Previous page')."</li>
-                                                               <li onclick=\"$page_first_link\">".__('First page')."</li></ul></li>
-                                                               </ul>";
-                                                       }
-       
-                                               if ($search && $feed_id >= 0 && get_pref($link, 'ENABLE_LABELS') && GLOBAL_ENABLE_LABELS) {
-                                                       print "
-                                                               <li class=\"vsep\">&nbsp;</li>
-                                                               <li class=\"top3\">
-                                                               <a href=\"javascript:labelFromSearch('$search', '$search_mode',
-                                                                       '$match_on', '$feed_id', '$is_cat');\">
-                                                                       ".__('Convert to label')."</a></td>";
-                                               }
-                                               print " 
-                                               </td>"; 
+                                               <li onclick=\"catchupRelativeToArticle(0)\">&nbsp;&nbsp;".__("Above active article")."</li>
+                                               <li onclick=\"catchupRelativeToArticle(1)\">&nbsp;&nbsp;".__("Below active article")."</li>";
+                               } else {
+                                       print "
+                                               <li><span class=\"insensitive\">&nbsp;&nbsp;".__("Above active article")."</span></li>
+                                               <li><span class=\"insensitive\">&nbsp;&nbsp;".__("Below active article")."</span></li>";
+
+                               } */
+
+                               print "<li onclick=\"$catchup_feed_link\">&nbsp;&nbsp;".__('Entire feed')."</li>";
+
+                               print "<li><span class=\"insensitive\">--------</span></li>";
+                               print "<li><span class=\"insensitive\">".__('Other actions:')."</span></li>";
+               
+
+                               if ($search && $feed_id >= 0 && get_pref($link, 'ENABLE_LABELS') && GLOBAL_ENABLE_LABELS) {
+                                       print "
+                                               <li onclick=\"javascript:labelFromSearch('$search', '$search_mode',
+                                                       '$match_on', '$feed_id', '$is_cat');\">&nbsp;&nbsp;
+                                                       ".__('Search to label')."</li>";
+                               } else {
+                                       print "<li><span class=\"insensitive\">&nbsp;&nbsp;".__('Search to label')."</li>";
+
+                               }
+                               
+                               print   "</ul></li></ul>";
+                               print "</td>"; 
        
                                } else {
-                               // old style subtoolbar:
+                                       // old style subtoolbar:
        
                                        print "<td class=\"headlineActions$rtl_cpart\">".
                                                __('Select:')."
                                }
                        } else { // dashboard menu actions
 
-                                       print "<td class=\"headlineActions$rtl_cpart\">
-                                               <ul class=\"headlineDropdownMenu\">
-                                               <li class=\"top2\">
-                                                       <a href=\"#\" onclick=\"return displayDlg('quickAddFeed');\">".
-                                                               __('Subscribe to feed')."</a>
-                                               </li>
-                                               <li class=\"vsep\">&nbsp;</li>
-                                               <li class=\"top\">".__('Placeholder')."<ul>
-                                                       <li onclick=\"\">".__('Placeholder')."</li>
-                                                       <li onclick=\"\">".__('Placeholder')."</li>
-                                                       <li onclick=\"\">".__('Placeholder')."</li>
-                                                       </ul></li>
-                                               <li class=\"vsep\">&nbsp;</li>
-                                               <li class=\"top\">".__('Show')."<ul>
-                                                       <li onclick=\"\">".__('Update errors')."</li>
-                                                       </ul></li></ul>";
-
-                                       print "</td>";
-
+                               // not implemented
+                               print "</td>";
                        }
 
-/*                     if ($search && $feed_id >= 0 && get_pref($link, 'ENABLE_LABELS') && GLOBAL_ENABLE_LABELS) {
-                               print "<td class=\"headlineActions$rtl_cpart\">
-                                       <a href=\"javascript:labelFromSearch('$search', '$search_mode',
-                                                       '$match_on', '$feed_id', '$is_cat');\">
-                                               ".__('Convert to Label')."</a></td>";
-} */
-
                        print "<td class=\"headlineTitle$rtl_cpart\">";
 
-                       print "<span class=\"headlineInnerTitle\">";
+                       print "<span id=\"subtoolbar_search\" 
+                               style=\"display : none\">Search: <input 
+                               id=\"subtoolbar_search_box\"
+                               onblur=\"javascript:enableHotkeys();\" 
+                               onfocus=\"javascript:disableHotkeys();\"
+                               onchange=\"subtoolbarSearch()\"
+                               onkeyup=\"subtoolbarSearch()\" type=\"search\"></span>";
+
+                       print "<span id=\"subtoolbar_ftitle\">";
 
                        if ($feed_site_url) {
                                if (!$bottom) {
                                print " [$user_page_offset] ";
                        }
 
-                       print "</span>";
-
                        if (!$bottom && !$disable_feed) {
                                print "
                                        <a target=\"_new\" 
                        } else if ($feed_small_icon) {
                                print "<img class=\"noborder\" alt=\"\" src=\"images/$feed_small_icon\">";
                        }
-                               
+
+                       print "</span>";
+
                        print "</td>";
                        print "</tr></table>";
 
 
                                $score = $line["score"];
 
-                               if ($score > 100) { 
-                                       $score_pic = "score_high.png"; 
-                               } else { 
-                                       $score_pic = "score_neutral.png"; 
-                               }
+                               $score_pic = get_score_pic($score);
 
                                $score_title = __("(Click to change)");
 
-                               $score_pic = "<img src=\"images/$score_pic\" 
+                               $score_pic = "<img class='hlScorePic' src=\"images/$score_pic\" 
                                        onclick=\"adjustArticleScore($id, $score)\" title=\"$score $score_title\">";
 
+                               if ($score > 500) {
+                                       $hlc_suffix = "H";
+                               } else if ($score < -100) {
+                                       $hlc_suffix = "L";
+                               } else {
+                                       $hlc_suffix = "";
+                               }
+
                                $entry_author = $line["author"];
 
                                if ($entry_author) {
 #                                                              truncate_string($line["feed_title"],30)."</a>&nbsp;</td>";
 #                                      } else {                        
 
-
-                                       if ($score > 500) {
-                                               $hlc_suffix = "H";
-                                       } else if ($score < -100) {
-                                               $hlc_suffix = "L";
-                                       } else {
-                                               $hlc_suffix = "";
-                                       }
-
                                        print "<td class='hlContent$hlc_suffix' valign='middle'>";
 
-                                       print "<a href=\"javascript:view($id,$feed_id);\">" .
+                                       print "<a id=\"RTITLE-$id\" href=\"javascript:view($id,$feed_id);\">" .
                                                $line["title"];
 
                                        if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) {
 
                                        $expand_cdm = get_pref($link, 'CDM_EXPANDED');
 
-                                       if ($expand_cdm) {
+                                       if ($expand_cdm && $score >= -100) {
                                                $cdm_cstyle = "";
                                        } else {
                                                $cdm_cstyle = "style=\"display : none\"";
 
                                        print "<div class=\"cdmHeader\">";
 
-                                       print "<div class=\"articleUpdated\">$updated_fmt</div>";
-                                       
-                                       print "<a class=\"title\" 
+                                       print "<div class=\"articleUpdated\">$updated_fmt $score_pic</div>";
+
+                                       print "<span id=\"RTITLE-$id\" class=\"titleWrap$hlc_suffix\"><a class=\"title\" 
                                                onclick=\"javascript:toggleUnread($id, 0)\"
-                                               target=\"_new\" href=\"".$line["link"]."\">".$line["title"]."</a>";
+                                               target=\"_blank\" href=\"".$line["link"]."\">".$line["title"]."</a>
+                                               ";
 
                                        print $entry_author;
 
-                                       if (!$expand_cdm) {
+                                       if (!$expand_cdm || $score < -100) {
                                                print "&nbsp;<a id=\"CICH-$id\" 
                                                        href=\"javascript:cdmExpandArticle($id)\">
                                                        (".__('Show article').")</a>";
                                                }
                                        }
 
-                                       print "</div>";
+                                       print "</span></div>";
 
                                        if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) {
                                                $line["content_preview"] = preg_replace("/href=/i", 
                $text = preg_replace("/\]\]\>/", "", $text);
                return $text;
        }
+
+       function load_filters($link, $feed, $owner_uid, $action_id = false) {
+               $filters = array();
+
+               if ($action_id) $ftype_query_part = "action_id = '$action_id' AND";
+
+               $result = db_query($link, "SELECT reg_exp,
+                       ttrss_filter_types.name AS name,
+                       ttrss_filter_actions.name AS action,
+                       inverse,
+                       action_param
+                       FROM ttrss_filters,ttrss_filter_types,ttrss_filter_actions WHERE                                        
+                               enabled = true AND
+                               $ftype_query_part
+                               owner_uid = $owner_uid AND
+                               ttrss_filter_types.id = filter_type AND
+                               ttrss_filter_actions.id = action_id AND
+                               (feed_id IS NULL OR feed_id = '$feed') ORDER BY reg_exp");
+
+               while ($line = db_fetch_assoc($result)) {
+                       if (!$filters[$line["name"]]) $filters[$line["name"]] = array();
+                               $filter["reg_exp"] = $line["reg_exp"];
+                               $filter["action"] = $line["action"];
+                               $filter["action_param"] = $line["action_param"];
+                               $filter["inverse"] = sql_bool_to_bool($line["inverse"]);
+                       
+                               array_push($filters[$line["name"]], $filter);
+                       }
+
+               return $filters;
+       }
+
+       function get_score_pic($score) {
+               if ($score > 0) { 
+                       return "score_high.png"; 
+               } else if ($score < 0) {
+                       return "score_low.png"; 
+               } else { 
+                       return "score_neutral.png"; 
+               }
+       }
 ?>