require_once 'errors.php';
require_once 'version.php';
- if (RSS_BACKEND_TYPE == "magpie") {
- define('MAGPIE_USER_AGENT_EXT', ' (Tiny Tiny RSS/' . VERSION . ')');
- require_once "magpierss/rss_fetch.inc";
- require_once 'magpierss/rss_utils.inc';
- } else if (RSS_BACKEND_TYPE == "simplepie") {
- require_once 'simplepie/simplepie.inc';
- }
-
+ define('MAGPIE_USER_AGENT_EXT', ' (Tiny Tiny RSS/' . VERSION . ')');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
+ require_once "magpierss/rss_fetch.inc";
+ require_once 'magpierss/rss_utils.inc';
+
function purge_feed($link, $feed_id, $purge_interval, $debug = false) {
$rows = -1;
function update_rss_feed($link, $feed_url, $feed, $ignore_daemon = false) {
- if (WEB_DEMO_MODE) return;
-
if (DAEMON_REFRESH_ONLY && !$_GET["daemon"] && !$ignore_daemon) {
return;
}
}
- if (RSS_BACKEND_TYPE == "magpie") {
- error_reporting(0);
- $rss = fetch_rss($fetch_url);
- error_reporting (DEFAULT_ERROR_LEVEL);
- } else if (RSS_BACKEND_TYPE == "simplepie") {
-
- if (!file_exists(SIMPLEPIE_CACHE_DIR)) {
- mkdir(SIMPLEPIE_CACHE_DIR);
- }
-
- $rss = new SimplePie();
- $rss->feed_url($fetch_url);
- $rss->cache_location(SIMPLEPIE_CACHE_DIR);
- $rss->init();
- }
+ error_reporting(0);
+ $rss = fetch_rss($fetch_url);
+ error_reporting (DEFAULT_ERROR_LEVEL);
$feed = db_escape_string($feed);
- $rss_check = $rss;
-
- if (RSS_BACKEND_TYPE == "simplepie") {
- $rss_check = $rss->data;
- }
-
- if ($rss_check) {
+ if ($rss) {
// db_query($link, "BEGIN");
if (!$registered_title || $registered_title == "[Unknown]") {
- if (RSS_BACKEND_TYPE == "magpie") {
- $feed_title = db_escape_string($rss->channel["title"]);
- } else {
- $feed_title = $rss->get_feed_title();
- }
+ $feed_title = db_escape_string($rss->channel["title"]);
db_query($link, "UPDATE ttrss_feeds SET
title = '$feed_title' WHERE id = '$feed'");
}
- if (RSS_BACKEND_TYPE == "magpie") {
- $site_url = $rss->channel["link"];
- // weird, weird Magpie
- if (!$site_url) $site_url = db_escape_string($rss->channel["link_"]);
- } else {
- $site_url = $rss->get_feed_link();
- }
+ $site_url = $rss->channel["link"];
+ // weird, weird Magpie
+ if (!$site_url) $site_url = db_escape_string($rss->channel["link_"]);
if ($site_url && $orig_site_url != db_escape_string($site_url)) {
db_query($link, "UPDATE ttrss_feeds SET
// print "I: " . $rss->channel["image"]["url"];
- if (RSS_BACKEND_TYPE == "magpie") {
- $icon_url = $rss->image["url"];
- } else {
- $icon_url = $rss->get_image_url(); # FIXME
- }
+ $icon_url = $rss->image["url"];
if ($icon_url && !$orig_icon_url != db_escape_string($icon_url)) {
$icon_url = db_escape_string($icon_url);
array_push($filters[$line["name"]], $filter);
}
- if (RSS_BACKEND_TYPE == "magpie") {
- $iterator = $rss->items;
+ $iterator = $rss->items;
- if (!$iterator || !is_array($iterator)) $iterator = $rss->entries;
- if (!$iterator || !is_array($iterator)) $iterator = $rss;
-
- } else {
- $iterator = $rss->get_items();
- }
+ if (!$iterator || !is_array($iterator)) $iterator = $rss->entries;
+ if (!$iterator || !is_array($iterator)) $iterator = $rss;
if (!is_array($iterator)) {
/* db_query($link, "UPDATE ttrss_feeds
foreach ($iterator as $item) {
- if (RSS_BACKEND_TYPE == "magpie") {
-
- $entry_guid = $item["id"];
-
- if (!$entry_guid) $entry_guid = $item["guid"];
- if (!$entry_guid) $entry_guid = $item["link"];
- if (!$entry_guid) $entry_guid = make_guid_from_title($item["title"]);
-
- if (!$entry_guid) continue;
-
- $entry_timestamp = "";
+ $entry_guid = $item["id"];
- $rss_2_date = $item['pubdate'];
- $rss_1_date = $item['dc']['date'];
- $atom_date = $item['issued'];
- if (!$atom_date) $atom_date = $item['updated'];
+ if (!$entry_guid) $entry_guid = $item["guid"];
+ if (!$entry_guid) $entry_guid = $item["link"];
+ if (!$entry_guid) $entry_guid = make_guid_from_title($item["title"]);
+
+ if (!$entry_guid) continue;
+
+ $entry_timestamp = "";
+
+ $rss_2_date = $item['pubdate'];
+ $rss_1_date = $item['dc']['date'];
+ $atom_date = $item['issued'];
+ if (!$atom_date) $atom_date = $item['updated'];
+
+ if ($atom_date != "") $entry_timestamp = parse_w3cdtf($atom_date);
+ if ($rss_1_date != "") $entry_timestamp = parse_w3cdtf($rss_1_date);
+ if ($rss_2_date != "") $entry_timestamp = strtotime($rss_2_date);
- if ($atom_date != "") $entry_timestamp = parse_w3cdtf($atom_date);
- if ($rss_1_date != "") $entry_timestamp = parse_w3cdtf($rss_1_date);
- if ($rss_2_date != "") $entry_timestamp = strtotime($rss_2_date);
-
- if ($entry_timestamp == "") {
- $entry_timestamp = time();
- $no_orig_date = 'true';
- } else {
- $no_orig_date = 'false';
- }
-
- $entry_timestamp_fmt = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp);
-
- $entry_title = trim(strip_tags($item["title"]));
-
- // strange Magpie workaround
- $entry_link = $item["link_"];
- if (!$entry_link) $entry_link = $item["link"];
-
- if (!$entry_title) continue;
+ if ($entry_timestamp == "") {
+ $entry_timestamp = time();
+ $no_orig_date = 'true';
+ } else {
+ $no_orig_date = 'false';
+ }
+
+ $entry_timestamp_fmt = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp);
+
+ $entry_title = trim(strip_tags($item["title"]));
+
+ // strange Magpie workaround
+ $entry_link = $item["link_"];
+ if (!$entry_link) $entry_link = $item["link"];
+
+ if (!$entry_title) continue;
# if (!$entry_link) continue;
- $entry_link = strip_tags($entry_link);
+ $entry_link = strip_tags($entry_link);
- $entry_content = $item["content:escaped"];
-
- if (!$entry_content) $entry_content = $item["content:encoded"];
- if (!$entry_content) $entry_content = $item["content"];
- if (!$entry_content) $entry_content = $item["atom_content"];
- if (!$entry_content) $entry_content = $item["summary"];
- if (!$entry_content) $entry_content = $item["description"];
-
- // if (!$entry_content) continue;
-
- // WTF
- if (is_array($entry_content)) {
- $entry_content = $entry_content["encoded"];
- if (!$entry_content) $entry_content = $entry_content["escaped"];
+ $entry_content = $item["content:escaped"];
+
+ if (!$entry_content) $entry_content = $item["content:encoded"];
+ if (!$entry_content) $entry_content = $item["content"];
+ if (!$entry_content) $entry_content = $item["atom_content"];
+ if (!$entry_content) $entry_content = $item["summary"];
+ if (!$entry_content) $entry_content = $item["description"];
+
+// if (!$entry_content) continue;
+
+ // WTF
+ if (is_array($entry_content)) {
+ $entry_content = $entry_content["encoded"];
+ if (!$entry_content) $entry_content = $entry_content["escaped"];
+ }
+
+// print_r($item);
+// print_r(htmlspecialchars($entry_content));
+// print "<br>";
+
+ $entry_content_unescaped = $entry_content;
+ $content_hash = "SHA1:" . sha1(strip_tags($entry_content));
+
+ $entry_comments = strip_tags($item["comments"]);
+
+ $entry_author = db_escape_string(strip_tags($item['dc']['creator']));
+
+ if ($item['author']) {
+ if (!$entry_author) {
+ $entry_author = db_escape_string(strip_tags($item['author']['name']));
}
-
- // print_r($item);
- // print_r(htmlspecialchars($entry_content));
- // print "<br>";
-
- $entry_content_unescaped = $entry_content;
- $content_hash = "SHA1:" . sha1(strip_tags($entry_content));
-
- $entry_comments = strip_tags($item["comments"]);
- $entry_author = db_escape_string(strip_tags($item['dc']['creator']));
+ if (!$entry_author) {
+ $entry_author = db_escape_string(strip_tags($item['author']['email']));
+ }
if (!$entry_author) {
$entry_author = db_escape_string(strip_tags($item['author']));
}
+ }
- $entry_guid = db_escape_string(strip_tags($entry_guid));
-
- $result = db_query($link, "SELECT id FROM ttrss_entries
- WHERE guid = '$entry_guid'");
-
- $entry_content = db_escape_string($entry_content);
- $entry_title = db_escape_string($entry_title);
- $entry_link = db_escape_string($entry_link);
- $entry_comments = db_escape_string($entry_comments);
-
- $num_comments = db_escape_string($item["slash"]["comments"]);
-
- if (!$num_comments) $num_comments = 0;
+ if (preg_match('/^[\t\n\r ]*$/', $entry_author)) $entry_author = '';
+
+ $entry_guid = db_escape_string(strip_tags($entry_guid));
+
+ $result = db_query($link, "SELECT id FROM ttrss_entries
+ WHERE guid = '$entry_guid'");
+
+ $entry_content = db_escape_string($entry_content);
+ $entry_title = db_escape_string($entry_title);
+ $entry_link = db_escape_string($entry_link);
+ $entry_comments = db_escape_string($entry_comments);
+
+ $num_comments = db_escape_string($item["slash"]["comments"]);
+
+ if (!$num_comments) $num_comments = 0;
+
+ $dc_subject = $item['dc']['subject'];
+
+ $subject_tags = false;
+
+ if (is_array($dc_subject)) {
+ $subject_tags = $dc_subject;
+ } else if ($dc_subject) {
+ $subject_tags = array($dc_subject);
}
# sanitize content
$manual_tags = trim_array(split(",", $filter_param));
- foreach ($manual_tags as $tag) {
- if (!preg_match("/^[0-9]*$/", $tag) && $tag != '') {
+ foreach ($manual_tags as $tag) {
+ if (tag_is_valid($tag)) {
+ array_push($entry_tags, $tag);
+ }
+ }
+ }
+
+ if ($subject_tags) {
+ foreach ($subject_tags as $tag) {
+ if (tag_is_valid($tag)) {
array_push($entry_tags, $tag);
}
}
}
$feed = "<a title=\"$link_title\" id=\"FEEDL-$feed_id\"
- href=\"#\" onclick=\"javascript:viewfeed('$feed_id', '', false);\">$feed_title</a>";
+ href=\"javascript:viewfeed('$feed_id', '', false);\">$feed_title</a>";
print "<li id=\"FEEDR-$feed_id\" class=\"$class\">";
if (get_pref($link, 'ENABLE_FEED_ICONS')) {
$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");
+ WHERE owner_uid = ".$_SESSION['uid']." GROUP BY tag_name ORDER BY tag_name");
$tags = array();
print "<select id=\"$id\" name=\"$id\" $attributes>";
if ($include_all_cats) {
- print "<option value=\"0\">Uncategorized</option>";
+ print "<option value=\"0\">"._('Uncategorized')."</option>";
}
$result = db_query($link, "SELECT id,title FROM ttrss_feed_categories
function getFeedCatTitle($link, $id) {
if ($id == -1) {
- return "Special";
+ return _("Special");
} else if ($id < -10) {
- return "Labels";
+ return _("Labels");
} else if ($id > 0) {
$result = db_query($link, "SELECT ttrss_feed_categories.title
FROM ttrss_feeds, ttrss_feed_categories WHERE ttrss_feeds.id = '$id' AND
if (db_num_rows($result) == 1) {
return db_fetch_result($result, 0, "title");
} else {
- return "Uncategorized";
+ return _("Uncategorized");
}
} else {
return "getFeedCatTitle($id) failed";
function getFeedTitle($link, $id) {
if ($id == -1) {
- return "Starred articles";
+ return _("Starred articles");
} else if ($id < -10) {
$label_id = -10 - $id;
$result = db_query($link, "SELECT description FROM ttrss_labels WHERE id = '$label_id'");
return $search_query_part;
}
- function queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, $search, $search_mode, $match_on, $override_order = false) {
+ function queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, $search, $search_mode, $match_on, $override_order = false, $offset = 0) {
+
if ($search) {
$search_query_part = getSearchSql($search, $match_on);
$feed_title = "";
if ($search && $search_mode == "all_feeds") {
- $feed_title = "Global search results ($search)";
+ $feed_title = _("Global search results")." ($search)";
} else if ($search && preg_match('/^-?[0-9][0-9]*$/', $feed) == false) {
- $feed_title = "Tag search results ($search, $feed)";
+ $feed_title = _("Tag search results")." ($search, $feed)";
} else if (preg_match('/^-?[0-9][0-9]*$/', $feed) == false) {
$feed_title = $feed;
} else if (preg_match('/^-?[0-9][0-9]*$/', $feed) != false && $feed >= 0) {
WHERE id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
$feed_title = db_fetch_result($result, 0, "title");
} else {
- $feed_title = "Uncategorized";
+ $feed_title = _("Uncategorized");
}
if ($search) {
- $feed_title = "Category search results ($search, $feed_title)";
+ $feed_title = _("Category search results")." ($search, $feed_title)";
}
} else {
$last_error = db_fetch_result($result, 0, "last_error");
if ($search) {
- $feed_title = "Feed search results ($search, $feed_title)";
+ $feed_title = _("Feed search results") . " ($search, $feed_title)";
}
}
} else if ($feed == -1) {
- $feed_title = "Starred articles";
+ $feed_title = _("Starred articles");
} else if ($feed < -10) {
$label_id = -$feed - 11;
$result = db_query($link, "SELECT description FROM ttrss_labels
$feed_title = db_fetch_result($result, 0, "description");
if ($search) {
- $feed_title = "Label search results ($search, $feed_title)";
+ $feed_title = _("Label search results") . " ($search, $feed_title)";
}
} else {
$feed_title = "?";
}
$content_query_part = "content as content_preview,";
-
+
$query = "SELECT
guid,
ttrss_entries.id,ttrss_entries.title,
$search_query_part
$view_query_part
$query_strategy_part ORDER BY $order_by
- $limit_query_part";
+ $limit_query_part OFFSET $offset";
$result = db_query($link, $query);
}
function prepare_headlines_digest($link, $user_id, $days = 1, $limit = 100) {
- $tmp = "New headlines for last 24 hours, as of " . date("Y/m/d H:m") . "\n";
+ $tmp = _("New headlines for last 24 hours, as of ") . date("Y/m/d H:m") . "\n";
$tmp .= "=======================================================\n\n";
if (DB_TYPE == "pgsql") {
}
$tmp .= "--- \n";
- $tmp .= "You have been sent this email because you have enabled daily digests in Tiny Tiny RSS at " .
+ $tmp .= _("You have been sent this email because you have enabled daily digests in Tiny Tiny RSS at ") .
DIGEST_HOSTNAME . "\n".
- "To unsubscribe, visit your configuration options or contact instance owner.\n";
+ _("To unsubscribe, visit your configuration options or contact instance owner.\n");
return array($tmp, $headlines_count);
function print_headline_subtoolbar($link, $feed_site_url, $feed_title,
$bottom = false, $rtl_content = false, $feed_id = 0,
$is_cat = false, $search = false, $match_on = false,
- $search_mode = false) {
+ $search_mode = false, $offset = 0) {
+
+ $user_page_offset = $offset + 1;
if (!$bottom) {
$class = "headlinesSubToolbar";
$rtl_cpart = "";
}
+ $page_prev_link = "javascript:viewFeedGoPage(-1)";
+ $page_next_link = "javascript:viewFeedGoPage(1)";
+ $page_first_link = "javascript:viewFeedGoPage(0)";
+
+ $catchup_page_link = "catchupPage()";
+ $catchup_feed_link = "catchupCurrentFeed()";
+
if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) {
- print "<td class=\"headlineActions$rtl_cpart\">
- Select:
- <a href=\"javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, '', true)\">All</a>,
- <a href=\"javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, 'Unread', true)\">Unread</a>,
- <a href=\"javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false)\">None</a>
-
- Toggle: <a href=\"javascript:selectionToggleUnread()\">Unread</a>,
- <a href=\"javascript:selectionToggleMarked()\">Starred</a>
-
- Mark as read:
- <a href=\"#\" onclick=\"catchupPage()\">Page</a>,
- <a href=\"#\" onclick=\"catchupCurrentFeed()\">Feed</a>";
- 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 this search to label</a></td>";
- }
+ $sel_all_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, '', true)";
+ $sel_unread_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, 'Unread', true)";
+ $sel_none_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false)";
+
+ $tog_unread_link = "javascript:selectionToggleUnread()";
+ $tog_marked_link = "javascript:selectionToggleMarked()";
} else {
+ $sel_all_link = "javascript:cdmSelectArticles('all')";
+ $sel_unread_link = "javascript:cdmSelectArticles('unread')";
+ $sel_none_link = "javascript:cdmSelectArticles('none')";
+
+ $tog_unread_link = "javascript:selectionToggleUnread(true)";
+ $tog_marked_link = "javascript:selectionToggleMarked(true)";
+
+ }
+
+ print "<td class=\"headlineActions$rtl_cpart\">
+ <ul class=\"headlineDropdownMenu\">
+ <li class=\"top2\">
+ Select:
+ <a href=\"$sel_all_link\">All</a>,
+ <a href=\"$sel_unread_link\">Unread</a>,
+ <a href=\"$sel_none_link\">None</a></li>
+ <li class=\"vsep\"> </li>
+ <li class=\"top\">Selection<ul>
+ <li onclick=\"$tog_unread_link\">Toggle Unread</li>
+ <li onclick=\"$tog_marked_link\">Toggle Starred</li></ul></li>
+ <li class=\"vsep\"> </li>
+ <li class=\"top\">Mark as read<ul>
+ <li onclick=\"$catchup_page_link\">This Page</li>
+ <li onclick=\"$catchup_feed_link\">Entire Feed</li></ul></li>
+ <li class=\"vsep\"> </li>
+ <!-- <li class=\"top2\">
+ Page:
+ <a href=\"$page_prev_link\">Previous</a>,
+ <a href=\"$page_next_link\">Next</a></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>
+
+ </td>";
+
+ // old style subtoolbar:
+
+/* print "<td class=\"headlineActions$rtl_cpart\">".
+ _('Select:')."
+ <a href=\"$sel_all_link\">All</a>,
+ <a href=\"$sel_unread_link\">Unread</a>,
+ <a href=\"$sel_none_link\">None</a>
+ ".
+ _('Toggle:')." <a href=\"$tog_unread_link\">Unread</a>,
+ <a href=\"$tog_marked_link\">Starred</a>
+ ".
+ _('Mark as read:')."
+ <a href=\"#\" onclick=\"$catchup_page_link\">Page</a>,
+ <a href=\"#\" onclick=\"$catchup_feed_link\">Feed</a>";
+ print "</td>"; */
+
+ if ($search && $feed_id >= 0 && get_pref($link, 'ENABLE_LABELS') && GLOBAL_ENABLE_LABELS) {
print "<td class=\"headlineActions$rtl_cpart\">
- Select:
- <a href=\"javascript:cdmSelectArticles('all')\">All</a>,
- <a href=\"javascript:cdmSelectArticles('unread')\">Unread</a>,
- <a href=\"javascript:cdmSelectArticles('none')\">None</a>
-
- Toggle: <a href=\"javascript:selectionToggleUnread(true)\">Unread</a>,
- <a href=\"javascript:selectionToggleMarked(true)\">Starred</a>
-
- Mark as read:
- <a href=\"#\" onclick=\"catchupPage()\">Page</a>,
- <a href=\"#\" onclick=\"catchupCurrentFeed()\">Feed</a>";
-
- print "</td>";
-
+ <a href=\"javascript:labelFromSearch('$search', '$search_mode',
+ '$match_on', '$feed_id', '$is_cat');\">
+ "._('Convert to Label')."</a></td>";
}
print "<td class=\"headlineTitle$rtl_cpart\">";
$search_q = "&q=$search&m=$match_on&smode=$search_mode";
}
+ if ($user_page_offset > 1) {
+ print " [$user_page_offset] ";
+ }
+
if (!$bottom) {
- print "
+ print "
<a target=\"_new\"
href=\"backend.php?op=rss&id=$feed_id&is_cat=$is_cat$search_q\">
<img class=\"noborder\"
/* virtual feeds */
if (get_pref($link, 'ENABLE_FEED_CATS')) {
- print "<li class=\"feedCat\">Special</li>";
+ print "<li class=\"feedCat\">"._('Special')."</li>";
print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">";
}
if ($num_starred > 0) $class .= "Unread";
- printFeedEntry(-1, $class, "Starred articles", $num_starred,
+ printFeedEntry(-1, $class, _("Starred articles"), $num_starred,
"images/mark_set.png", $link);
if (get_pref($link, 'ENABLE_FEED_CATS')) {
if (db_num_rows($result) > 0) {
if (get_pref($link, 'ENABLE_FEED_CATS')) {
- print "<li class=\"feedCat\">Labels</li>";
+ print "<li class=\"feedCat\">"._('Labels')."</li>";
print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">";
} else {
print "<li><hr></li>";
$tmp_category = $line["category"];
if (!$tmp_category) {
- $tmp_category = "Uncategorized";
+ $tmp_category = _("Uncategorized");
}
// $class = ($lnum % 2) ? "even" : "odd";
$collapsed = $line["collapsed"];
// workaround for NULL category
- if ($category == "Uncategorized") {
+ if ($category == _("Uncategorized")) {
if ($_COOKIE["ttrss_vf_uclps"] == 1) {
$collapsed = "t";
}
}
if (db_num_rows($result) == 0) {
- print "<li>No feeds to display.</li>";
+ print "<li>"._('No feeds to display.')."</li>";
}
} else {
ORDER BY tag_name"); */
if (get_pref($link, 'ENABLE_FEED_CATS')) {
- print "<li class=\"feedCat\">Tags</li>";
+ 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");
+ WHERE owner_uid = ".$_SESSION['uid']." GROUP BY tag_name ORDER BY tag_name");
$tags = array();
return $tmp;
}
+ function tag_is_valid($tag) {
+ return ($tag !='' && !preg_match("/^[0-9]*$/", $tag));
+ }
+
?>