|
|
|
@ -122,293 +122,6 @@
|
|
|
|
|
|
|
|
|
|
if (!sanity_check($link)) { return; }
|
|
|
|
|
|
|
|
|
|
function outputFeedList($link, $tags = false) {
|
|
|
|
|
|
|
|
|
|
print "<ul class=\"feedList\" id=\"feedList\">\n";
|
|
|
|
|
|
|
|
|
|
$owner_uid = $_SESSION["uid"];
|
|
|
|
|
|
|
|
|
|
if (!$tags) {
|
|
|
|
|
|
|
|
|
|
/* virtual feeds */
|
|
|
|
|
|
|
|
|
|
if (get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
print "<li class=\"feedCat\">Special</li>";
|
|
|
|
|
print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$num_starred = getFeedUnread($link, -1);
|
|
|
|
|
|
|
|
|
|
$class = "virt";
|
|
|
|
|
|
|
|
|
|
if ($num_starred > 0) $class .= "Unread";
|
|
|
|
|
|
|
|
|
|
printFeedEntry(-1, $class, "Starred articles", $num_starred,
|
|
|
|
|
"images/mark_set.png", $link);
|
|
|
|
|
|
|
|
|
|
if (get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
print "</ul>\n";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (GLOBAL_ENABLE_LABELS && get_pref($link, 'ENABLE_LABELS')) {
|
|
|
|
|
|
|
|
|
|
$result = db_query($link, "SELECT id,sql_exp,description FROM
|
|
|
|
|
ttrss_labels WHERE owner_uid = '$owner_uid' ORDER by description");
|
|
|
|
|
|
|
|
|
|
if (db_num_rows($result) > 0) {
|
|
|
|
|
if (get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
print "<li class=\"feedCat\">Labels</li>";
|
|
|
|
|
print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">";
|
|
|
|
|
} else {
|
|
|
|
|
print "<li><hr></li>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while ($line = db_fetch_assoc($result)) {
|
|
|
|
|
|
|
|
|
|
error_reporting (0);
|
|
|
|
|
|
|
|
|
|
$label_id = -$line['id'] - 11;
|
|
|
|
|
$count = getFeedUnread($link, $label_id);
|
|
|
|
|
|
|
|
|
|
$class = "label";
|
|
|
|
|
|
|
|
|
|
if ($count > 0) {
|
|
|
|
|
$class .= "Unread";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
error_reporting (DEFAULT_ERROR_LEVEL);
|
|
|
|
|
|
|
|
|
|
printFeedEntry($label_id,
|
|
|
|
|
$class, db_unescape_string($line["description"]),
|
|
|
|
|
$count, "images/label.png", $link);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (db_num_rows($result) > 0) {
|
|
|
|
|
if (get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
print "</ul>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
print "<li><hr></li>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
if (get_pref($link, "FEEDS_SORT_BY_UNREAD")) {
|
|
|
|
|
$order_by_qpart = "category,unread DESC,title";
|
|
|
|
|
} else {
|
|
|
|
|
$order_by_qpart = "category,title";
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (get_pref($link, "FEEDS_SORT_BY_UNREAD")) {
|
|
|
|
|
$order_by_qpart = "unread DESC,title";
|
|
|
|
|
} else {
|
|
|
|
|
$order_by_qpart = "title";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = db_query($link, "SELECT ttrss_feeds.*,
|
|
|
|
|
SUBSTRING(last_updated,1,19) AS last_updated_noms,
|
|
|
|
|
(SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries
|
|
|
|
|
WHERE feed_id = ttrss_feeds.id AND unread = true
|
|
|
|
|
AND ttrss_user_entries.ref_id = ttrss_entries.id
|
|
|
|
|
AND owner_uid = '$owner_uid') as unread,
|
|
|
|
|
cat_id,last_error,
|
|
|
|
|
ttrss_feed_categories.title AS category,
|
|
|
|
|
ttrss_feed_categories.collapsed
|
|
|
|
|
FROM ttrss_feeds LEFT JOIN ttrss_feed_categories
|
|
|
|
|
ON (ttrss_feed_categories.id = cat_id)
|
|
|
|
|
WHERE
|
|
|
|
|
ttrss_feeds.hidden = false AND
|
|
|
|
|
ttrss_feeds.owner_uid = '$owner_uid' AND parent_feed IS NULL
|
|
|
|
|
ORDER BY $order_by_qpart");
|
|
|
|
|
|
|
|
|
|
$actid = $_GET["actid"];
|
|
|
|
|
|
|
|
|
|
/* real feeds */
|
|
|
|
|
|
|
|
|
|
$lnum = 0;
|
|
|
|
|
|
|
|
|
|
$total_unread = 0;
|
|
|
|
|
|
|
|
|
|
$category = "";
|
|
|
|
|
|
|
|
|
|
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
|
|
|
|
|
|
|
|
|
while ($line = db_fetch_assoc($result)) {
|
|
|
|
|
|
|
|
|
|
$feed = db_unescape_string($line["title"]);
|
|
|
|
|
$feed_id = $line["id"];
|
|
|
|
|
|
|
|
|
|
$subop = $_GET["subop"];
|
|
|
|
|
|
|
|
|
|
$unread = $line["unread"];
|
|
|
|
|
|
|
|
|
|
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
|
|
|
|
$last_updated = smart_date_time(strtotime($line["last_updated_noms"]));
|
|
|
|
|
} else {
|
|
|
|
|
$last_updated = date($short_date, strtotime($line["last_updated_noms"]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$rtl_content = sql_bool_to_bool($line["rtl_content"]);
|
|
|
|
|
|
|
|
|
|
if ($rtl_content) {
|
|
|
|
|
$rtl_tag = "dir=\"RTL\"";
|
|
|
|
|
} else {
|
|
|
|
|
$rtl_tag = "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$tmp_result = db_query($link,
|
|
|
|
|
"SELECT id,COUNT(unread) AS unread
|
|
|
|
|
FROM ttrss_feeds LEFT JOIN ttrss_user_entries
|
|
|
|
|
ON (ttrss_feeds.id = ttrss_user_entries.feed_id)
|
|
|
|
|
WHERE parent_feed = '$feed_id' AND unread = true
|
|
|
|
|
GROUP BY ttrss_feeds.id");
|
|
|
|
|
|
|
|
|
|
if (db_num_rows($tmp_result) > 0) {
|
|
|
|
|
while ($l = db_fetch_assoc($tmp_result)) {
|
|
|
|
|
$unread += $l["unread"];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$cat_id = $line["cat_id"];
|
|
|
|
|
|
|
|
|
|
$tmp_category = $line["category"];
|
|
|
|
|
|
|
|
|
|
if (!$tmp_category) {
|
|
|
|
|
$tmp_category = "Uncategorized";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// $class = ($lnum % 2) ? "even" : "odd";
|
|
|
|
|
|
|
|
|
|
if ($line["last_error"]) {
|
|
|
|
|
$class = "error";
|
|
|
|
|
} else {
|
|
|
|
|
$class = "feed";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($unread > 0) $class .= "Unread";
|
|
|
|
|
|
|
|
|
|
if ($actid == $feed_id) {
|
|
|
|
|
$class .= "Selected";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$total_unread += $unread;
|
|
|
|
|
|
|
|
|
|
if ($category != $tmp_category && get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
|
|
|
|
|
if ($category) {
|
|
|
|
|
print "</ul></li>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$category = $tmp_category;
|
|
|
|
|
|
|
|
|
|
$collapsed = $line["collapsed"];
|
|
|
|
|
|
|
|
|
|
// workaround for NULL category
|
|
|
|
|
if ($category == "Uncategorized") {
|
|
|
|
|
if ($_COOKIE["ttrss_vf_uclps"] == 1) {
|
|
|
|
|
$collapsed = "t";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($collapsed == "t" || $collapsed == "1") {
|
|
|
|
|
$holder_class = "invisible";
|
|
|
|
|
$ellipsis = "...";
|
|
|
|
|
} else {
|
|
|
|
|
$holder_class = "";
|
|
|
|
|
$ellipsis = "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$cat_id = sprintf("%d", $cat_id);
|
|
|
|
|
|
|
|
|
|
$cat_unread = getCategoryUnread($link, $cat_id);
|
|
|
|
|
|
|
|
|
|
print "<li class=\"feedCat\" id=\"FCAT-$cat_id\">
|
|
|
|
|
<a id=\"FCATN-$cat_id\" href=\"javascript:toggleCollapseCat($cat_id)\">$tmp_category</a>
|
|
|
|
|
<a href=\"javascript:viewCategory($cat_id)\" id=\"FCAP-$cat_id\">
|
|
|
|
|
<span id=\"FCATCTR-$cat_id\"
|
|
|
|
|
class=\"$catctr_class\">($cat_unread unread)$ellipsis</span>
|
|
|
|
|
</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\">";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printFeedEntry($feed_id, $class, $feed, $unread,
|
|
|
|
|
"icons/$feed_id.ico", $link, $rtl_content,
|
|
|
|
|
$last_updated, $line["last_error"]);
|
|
|
|
|
|
|
|
|
|
++$lnum;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (db_num_rows($result) == 0) {
|
|
|
|
|
print "<li>No feeds to display.</li>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
// tags
|
|
|
|
|
|
|
|
|
|
/* $result = db_query($link, "SELECT tag_name,count(ttrss_entries.id) AS count
|
|
|
|
|
FROM ttrss_tags,ttrss_entries,ttrss_user_entries WHERE
|
|
|
|
|
post_int_id = ttrss_user_entries.int_id AND
|
|
|
|
|
unread = true AND ref_id = ttrss_entries.id
|
|
|
|
|
AND ttrss_tags.owner_uid = '$owner_uid' GROUP BY tag_name
|
|
|
|
|
UNION
|
|
|
|
|
select tag_name,0 as count FROM ttrss_tags WHERE owner_uid = '$owner_uid'
|
|
|
|
|
ORDER BY tag_name"); */
|
|
|
|
|
|
|
|
|
|
if (get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
print "<li class=\"feedCat\">Tags</li>";
|
|
|
|
|
print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = db_query($link, "SELECT tag_name,SUM((SELECT COUNT(int_id)
|
|
|
|
|
FROM ttrss_user_entries WHERE int_id = post_int_id
|
|
|
|
|
AND unread = true)) AS count FROM ttrss_tags
|
|
|
|
|
WHERE owner_uid = 2 GROUP BY tag_name ORDER BY tag_name");
|
|
|
|
|
|
|
|
|
|
$tags = array();
|
|
|
|
|
|
|
|
|
|
while ($line = db_fetch_assoc($result)) {
|
|
|
|
|
$tags[$line["tag_name"]] += $line["count"];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (array_keys($tags) as $tag) {
|
|
|
|
|
|
|
|
|
|
$unread = $tags[$tag];
|
|
|
|
|
|
|
|
|
|
$class = "tag";
|
|
|
|
|
|
|
|
|
|
if ($unread > 0) {
|
|
|
|
|
$class .= "Unread";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printFeedEntry($tag, $class, $tag, $unread, "images/tag.png", $link);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (db_num_rows($result) == 0) {
|
|
|
|
|
print "<li>No tags to display.</li>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (get_pref($link, 'ENABLE_FEED_CATS')) {
|
|
|
|
|
print "</ul>\n";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print "</ul>";
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($op == "rpc") {
|
|
|
|
|
handle_rpc_request($link);
|
|
|
|
|
}
|
|
|
|
|