]> git.wh0rd.org Git - tt-rss.git/commitdiff
improve filter overview display; replace ngettext with php gettext
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Mon, 1 Apr 2013 12:06:04 +0000 (16:06 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Mon, 1 Apr 2013 12:06:04 +0000 (16:06 +0400)
classes/pref/feeds.php
classes/pref/filters.php

index e48953e948785add3575c15e22b7a06a60a29488..46c3d083b3f33521db03bca6cc2acb89edd85116 100644 (file)
@@ -58,7 +58,7 @@ class Pref_Feeds extends Handler_Protected {
 
                        $cat['items'] = $this->get_category_items($line['id']);
 
-                       $cat['param'] = vsprintf(ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
+                       $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
 
                        if (count($cat['items']) > 0 || $show_empty_cats)
                                array_push($items, $cat);
@@ -206,7 +206,7 @@ class Pref_Feeds extends Handler_Protected {
 
                                $cat['items'] = $this->get_category_items($line['id']);
 
-                               $cat['param'] = vsprintf(ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
+                               $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
 
                                if (count($cat['items']) > 0 || $show_empty_cats)
                                        array_push($root['items'], $cat);
@@ -248,13 +248,13 @@ class Pref_Feeds extends Handler_Protected {
                                array_push($cat['items'], $feed);
                        }
 
-                       $cat['param'] = vsprintf(ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
+                       $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
 
                        if (count($cat['items']) > 0 || $show_empty_cats)
                                array_push($root['items'], $cat);
 
                        $root['param'] += count($cat['items']);
-                       $root['param'] = vsprintf(ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
+                       $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
 
                } else {
                        $feed_result = db_query($this->link, "SELECT id, title, last_error,
@@ -279,7 +279,7 @@ class Pref_Feeds extends Handler_Protected {
                                array_push($root['items'], $feed);
                        }
 
-                       $root['param'] = vsprintf(ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
+                       $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items']));
                }
 
                $fl = array();
index 2f0fc5ebbcd73b4d5cb63297ac0ef8c23cf7c334..4be1cdae529ba7c5030824f73de298d9867d25a8 100644 (file)
@@ -954,59 +954,36 @@ class Pref_Filters extends Handler_Protected {
        private function getFilterName($id) {
 
                $result = db_query($this->link,
-                       "SELECT title FROM ttrss_filters2 WHERE id = '$id'");
+                       "SELECT title,COUNT(DISTINCT r.id) AS num_rules,COUNT(DISTINCT a.id) AS num_actions
+                               FROM ttrss_filters2 AS f LEFT JOIN ttrss_filters2_rules AS r
+                                       ON (r.filter_id = f.id)
+                                               LEFT JOIN ttrss_filters2_actions AS a
+                                                       ON (a.filter_id = f.id) WHERE f.id = '$id' GROUP BY f.title");
 
                $title = db_fetch_result($result, 0, "title");
+               $num_rules = db_fetch_result($result, 0, "num_rules");
+               $num_actions = db_fetch_result($result, 0, "num_actions");
 
-               if (!$title) {
+               if (!$title) $title = __("[No caption]");
 
-                       $result = db_query($this->link,
-                               "SELECT * FROM ttrss_filters2_rules WHERE filter_id = '$id' ORDER BY id
-                               LIMIT 3");
+               $title = sprintf(_ngettext("%s (%d rule)", "%s (%d rules)", $num_rules), $title, $num_rules);
 
-                       $titles = array();
-                       $count = 0;
-
-                       while ($line = db_fetch_assoc($result)) {
-
-                               if (sql_bool_to_bool($line["cat_filter"])) {
-                                       unset($line["cat_filter"]);
-                                       $line["feed_id"] = "CAT:" . (int)$line["cat_id"];
-                                       unset($line["cat_id"]);
-                               }
-
-                               if (!sql_bool_to_bool($line["inverse"])) unset($line["inverse"]);
+               $result = db_query($this->link,
+                       "SELECT * FROM ttrss_filters2_actions WHERE filter_id = '$id' ORDER BY id LIMIT 1");
 
-                               if ($count < 2) {
-                                       array_push($titles, $this->getRuleName($line));
-                               } else {
-                                       array_push($titles, "...");
-                                       break;
-                               }
-                               ++$count;
-                       }
+               $actions = "";
 
-                       $title = __("[No caption]") . " " . truncate_string(join(", ", $titles), 64, "...");
+               if (db_num_rows($result) > 0) {
+                       $line = db_fetch_assoc($result);
+                       $actions = $this->getActionName($line);
 
+                       $num_actions -= 1;
                }
 
-               $result = db_query($this->link,
-                       "SELECT * FROM ttrss_filters2_actions WHERE filter_id = '$id' ORDER BY id LIMIT 3");
-
-               $actions = array();
-               $count = 0;
-
-               while ($line = db_fetch_assoc($result)) {
-                       if ($count < 2) {
-                               array_push($actions, $this->getActionName($line));
-                       } else {
-                               array_push($actions, "...");
-                               break;
-                       }
-                       ++$count;
-               }
+               if ($num_actions > 0)
+                       $actions = sprintf(_ngettext("%s (+%d action)", "%s (+%d actions)", $num_actions), $actions, $num_actions);
 
-               return array($title, join(", ", $actions));
+               return array($title, $actions);
        }
 
        function join() {