summaryrefslogtreecommitdiff
path: root/functions.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2007-08-13 05:57:19 +0100
committerAndrew Dolgov <[email protected]>2007-08-13 05:57:19 +0100
commitbba7c4bf21385151b7f6649d07d54e9e1b4f8b6a (patch)
tree2242191162b8b6665fb815db9026c8631b248b94 /functions.php
parentfeb3185124bd5f1257c6bdfaeb2300845c923ff5 (diff)
display counters on special/label categories
Diffstat (limited to 'functions.php')
-rw-r--r--functions.php180
1 files changed, 126 insertions, 54 deletions
diff --git a/functions.php b/functions.php
index 04594f9da..f3136413e 100644
--- a/functions.php
+++ b/functions.php
@@ -1755,6 +1755,16 @@
}
function getCategoryCounters($link) {
+ # two special categories are -1 and -2 (all virtuals; all labels)
+
+ $ctr = getCategoryUnread($link, -1);
+
+ print "<counter type=\"category\" id=\"-1\" counter=\"$ctr\"/>";
+
+ $ctr = getCategoryUnread($link, -2);
+
+ print "<counter type=\"category\" id=\"-2\" counter=\"$ctr\"/>";
+
$result = db_query($link, "SELECT cat_id,SUM((SELECT COUNT(int_id)
FROM ttrss_user_entries WHERE feed_id = ttrss_feeds.id
AND unread = true)) AS unread FROM ttrss_feeds
@@ -1770,38 +1780,54 @@
function getCategoryUnread($link, $cat) {
- if ($cat != 0) {
- $cat_query = "cat_id = '$cat'";
- } else {
- $cat_query = "cat_id IS NULL";
- }
-
- $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE $cat_query
- AND hidden = false
- AND owner_uid = " . $_SESSION["uid"]);
-
- $cat_feeds = array();
- while ($line = db_fetch_assoc($result)) {
- array_push($cat_feeds, "feed_id = " . $line["id"]);
- }
-
- if (count($cat_feeds) == 0) return 0;
+ if ($cat >= 0) {
- $match_part = implode(" OR ", $cat_feeds);
+ if ($cat != 0) {
+ $cat_query = "cat_id = '$cat'";
+ } else {
+ $cat_query = "cat_id IS NULL";
+ }
+
+ $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE $cat_query
+ AND hidden = false
+ AND owner_uid = " . $_SESSION["uid"]);
+
+ $cat_feeds = array();
+ while ($line = db_fetch_assoc($result)) {
+ array_push($cat_feeds, "feed_id = " . $line["id"]);
+ }
+
+ if (count($cat_feeds) == 0) return 0;
+
+ $match_part = implode(" OR ", $cat_feeds);
+
+ $result = db_query($link, "SELECT COUNT(int_id) AS unread
+ FROM ttrss_user_entries
+ WHERE unread = true AND ($match_part) AND owner_uid = " . $_SESSION["uid"]);
+
+ $unread = 0;
+
+ # this needs to be rewritten
+ while ($line = db_fetch_assoc($result)) {
+ $unread += $line["unread"];
+ }
+
+ return $unread;
+ } else if ($cat == -1) {
+ return getFeedUnread($link, -1) + getFeedUnread($link, -2);
+ } else if ($cat == -2) {
- $result = db_query($link, "SELECT COUNT(int_id) AS unread
- FROM ttrss_user_entries
- WHERE unread = true AND ($match_part) AND owner_uid = " . $_SESSION["uid"]);
+ $rv = getLabelCounters($link, false, true);
+ $ctr = 0;
- $unread = 0;
+ foreach (array_keys($rv) as $k) {
+ if ($k < -10) {
+ $ctr += $rv[$k]["counter"];
+ }
+ }
- # this needs to be rewritten
- while ($line = db_fetch_assoc($result)) {
- $unread += $line["unread"];
+ return $ctr;
}
-
- return $unread;
-
}
function getFeedUnread($link, $feed, $is_cat = false) {
@@ -1991,7 +2017,7 @@
print "<counter type=\"label\" id=\"-1\" counter=\"$count\"/>";
} else {
$ret_arr["-1"]["counter"] = $count;
- $ret_arr["-1"]["description"] = "Starred";
+ $ret_arr["-1"]["description"] = __("Starred articles");
}
$result = db_query($link, "SELECT count(ttrss_entries.id) as count FROM ttrss_entries,ttrss_user_entries,ttrss_feeds
@@ -2005,7 +2031,7 @@
print "<counter type=\"label\" id=\"-2\" counter=\"$count\"/>";
} else {
$ret_arr["-2"]["counter"] = $count;
- $ret_arr["-2"]["description"] = "Published";
+ $ret_arr["-2"]["description"] = __("Published articles");
}
@@ -2788,13 +2814,20 @@
function getCategoryTitle($link, $cat_id) {
- $result = db_query($link, "SELECT title FROM ttrss_feed_categories WHERE
- id = '$cat_id'");
-
- if (db_num_rows($result) == 1) {
- return db_fetch_result($result, 0, "title");
+ if ($cat_id == -1) {
+ return __("Special");
+ } else if ($cat_id == -2) {
+ return __("Labels");
} else {
- return "Uncategorized";
+
+ $result = db_query($link, "SELECT title FROM ttrss_feed_categories WHERE
+ id = '$cat_id'");
+
+ if (db_num_rows($result) == 1) {
+ return db_fetch_result($result, 0, "title");
+ } else {
+ return "Uncategorized";
+ }
}
}
@@ -3240,6 +3273,44 @@
}
+ function printCategoryHeader($link, $cat_id, $hidden = false, $can_browse = true) {
+
+ $tmp_category = getCategoryTitle($link, $cat_id);
+ $cat_unread = getCategoryUnread($link, $cat_id);
+
+ if ($hidden) {
+ $holder_style = "display:none;";
+ $ellipsis = "...";
+ } else {
+ $holder_style = "";
+ $ellipsis = "";
+ }
+
+ $catctr_class = ($cat_unread > 0) ? "catCtrHasUnread" : "catCtrNoUnread";
+
+ print "<li class=\"feedCat\" id=\"FCAT-$cat_id\">
+ <a id=\"FCATN-$cat_id\" href=\"javascript:toggleCollapseCat($cat_id)\">$tmp_category</a>";
+
+ if ($can_browse) {
+ print "<a href=\"#\" onclick=\"javascript:viewCategory($cat_id)\" id=\"FCAP-$cat_id\">";
+ } else {
+ print "<span id=\"FCAP-$cat_id\">";
+ }
+
+ print " <span id=\"FCATCTR-$cat_id\" title=\"Click to browse category\"
+ class=\"$catctr_class\">($cat_unread)</span> $ellipsis";
+
+ if ($can_browse) {
+ print "</a>";
+ } else {
+ print "</span>";
+ }
+
+ print "</li>";
+
+ print "<li id=\"feedCatHolder\" class=\"$holder_class\"><ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>";
+ }
+
function outputFeedList($link, $tags = false) {
print "<ul class=\"feedList\" id=\"feedList\">";
@@ -3251,22 +3322,25 @@
if (get_pref($link, 'ENABLE_FEED_CATS')) {
if ($_COOKIE["ttrss_vf_vclps"] == 1) {
- $holder_style = "display:none;";
- $ellipsis = "...";
+ $cat_hidden = true;
} else {
- $holder_style = "";
- $ellipsis = "";
+ $cat_hidden = false;
}
# print "<li class=\"feedCat\">".__('Special')."</li>";
# print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"><ul class=\"feedCatList\">";
- print "<li class=\"feedCat\">".
- "<a id=\"FCATN--1\" href=\"javascript:toggleCollapseCat(-1)\">".
- __('Special')."</a> <span id='FCAP--1'>$ellipsis</span></li>";
+# print "<li class=\"feedCat\">".
+# "<a id=\"FCATN--1\" href=\"javascript:toggleCollapseCat(-1)\">".
+# __('Special')."</a> <span id='FCAP--1'>$ellipsis</span></li>";
+#
+# print "<li id=\"feedCatHolder\" class=\"feedCatHolder\">
+# <ul class=\"feedCatList\" id='FCATLIST--1' style='$holder_style'>";
- print "<li id=\"feedCatHolder\" class=\"feedCatHolder\">
- <ul class=\"feedCatList\" id='FCATLIST--1' style='$holder_style'>";
+# $cat_unread = getCategoryUnread($link, -1);
+# $tmp_category = __("Special");
+# $catctr_class = ($cat_unread > 0) ? "catCtrHasUnread" : "catCtrNoUnread";
+ printCategoryHeader($link, -1, $cat_hidden, false);
}
$num_starred = getFeedUnread($link, -1);
@@ -3301,18 +3375,18 @@
if (get_pref($link, 'ENABLE_FEED_CATS')) {
if ($_COOKIE["ttrss_vf_lclps"] == 1) {
- $holder_style = "display:none;";
- $ellipsis = "...";
+ $cat_hidden = true;
} else {
- $holder_style = "";
- $ellipsis = "";
+ $cat_hidden = false;
}
- print "<li class=\"feedCat\">".
- "<a id=\"FCATN--2\" href=\"javascript:toggleCollapseCat(-2)\">".
- __('Labels')."</a> <span id='FCAP--2'>$ellipsis</span></li>";
+ printCategoryHeader($link, -2, $cat_hidden, false);
- print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"><ul class=\"feedCatList\" id='FCATLIST--2' style='$holder_style'>";
+# print "<li class=\"feedCat\">".
+# "<a id=\"FCATN--2\" href=\"javascript:toggleCollapseCat(-2)\">".
+# __('Labels')."</a> <span id='FCAP--2'>$ellipsis</span></li>";
+#
+# print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"><ul class=\"feedCatList\" id='FCATLIST--2' style='$holder_style'>";
} else {
print "<li><hr></li>";
}
@@ -3496,8 +3570,6 @@
class=\"$catctr_class\">($cat_unread)</span> $ellipsis
</a></li>";
- // !!! NO SPACE before <ul...feedCatList - breaks firstChild DOM function
- // -> keyboard navigation, etc.
print "<li id=\"feedCatHolder\" class=\"$holder_class\"><ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>";
}