}
if (ENABLE_TRANSLATIONS == true) { // If translations are enabled.
- require_once "accept-to-gettext.php";
+ require_once "lib/accept-to-gettext.php";
require_once "lib/gettext/gettext.inc";
function startup_gettext() {
foreach ($iterator as $item) {
- if ($_GET['xdebug']) {
+ if ($_GET['xdebug'] == 2) {
print_r($item);
-
}
if ($use_simplepie) {
}
}
- if ($_GET["xdebug"]) {
+ if ($_GET["xdebug"] == 2) {
print "update_rss_feed: content: ";
print_r(htmlspecialchars($entry_content));
}
// do we allow duplicate posts with same GUID in different feeds?
if (get_pref($link, "ALLOW_DUPLICATE_POSTS", $owner_uid, false)) {
- $dupcheck_qpart = "AND feed_id = '$feed'";
+ $dupcheck_qpart = "AND (feed_id = '$feed' OR feed_id IS NULL)";
} else {
$dupcheck_qpart = "";
}
_debug("update_rss_feed: initial score: $score");
}
- $result = db_query($link,
- "SELECT ref_id, int_id FROM ttrss_user_entries WHERE
+ $query = "SELECT ref_id, int_id FROM ttrss_user_entries WHERE
ref_id = '$ref_id' AND owner_uid = '$owner_uid'
- $dupcheck_qpart");
+ $dupcheck_qpart";
+
+// if ($_GET["xdebug"]) print "$query\n";
+
+ $result = db_query($link, $query);
// okay it doesn't exist - create user entry
if (db_num_rows($result) == 0) {
$entry_int_id = db_fetch_result($result, 0, "int_id");
}
} else {
+ if (defined('DAEMON_EXTENDED_DEBUG') || $_GET['xdebug']) {
+ _debug("update_rss_feed: user record FOUND");
+ }
+
$entry_ref_id = db_fetch_result($result, 0, "ref_id");
$entry_int_id = db_fetch_result($result, 0, "int_id");
}
$rtl_content = false, $last_updated = false, $last_error = false,
$fg_content = false, $bg_content = false) {
+ if (!$feed_title) $feed_title = getFeedTitle($link, $feed_id, false);
+ if (!$unread) $unread = getFeedUnread($link, $feed_id);
+
+ if ($unread > 0) $class .= "Unread";
+
+ if (!$icon_file) $icon_file = getFeedIcon($feed_id);
+
if (file_exists($icon_file) && filesize($icon_file) > 0) {
$feed_icon = "<img id=\"FIMG-$feed_id\" src=\"$icon_file\">";
} else {
return $unread;
} else if ($cat == -1) {
- return getFeedUnread($link, -1) + getFeedUnread($link, -2) + getFeedUnread($link, -3);
+ return getFeedUnread($link, -1) + getFeedUnread($link, -2) + getFeedUnread($link, -3) + getFeedUnread($link, 0);
} else if ($cat == -2) {
$result = db_query($link, "
}
} else if ($n_feed == -4) {
$match_part = "true";
- } else if ($n_feed > 0) {
+ } else if ($n_feed >= 0) {
$result = db_query($link, "SELECT id FROM ttrss_feeds
WHERE parent_feed = '$n_feed'
$match_part = implode(" OR ", $linked_feeds);
- $result = db_query($link, "SELECT COUNT(int_id) AS unread
+ $tmp_result = db_query($link, "SELECT COUNT(int_id) AS unread
FROM ttrss_user_entries,ttrss_entries
WHERE $unread_qpart AND
ttrss_user_entries.ref_id = ttrss_entries.id AND
$unread = 0;
# this needs to be rewritten
- while ($line = db_fetch_assoc($result)) {
+ while ($line = db_fetch_assoc($tmp_result)) {
$unread += $line["unread"];
}
return $unread;
} else {
- $match_part = "feed_id = '$n_feed'";
+ if ($n_feed != 0) {
+ $match_part = "feed_id = '$n_feed'";
+ } else {
+ $match_part = "feed_id IS NULL";
+ }
}
} else if ($feed < -10) {
}
if ($match_part) {
-
- $result = db_query($link, "SELECT count(int_id) AS unread
- FROM ttrss_user_entries,ttrss_feeds,ttrss_entries WHERE
- ttrss_user_entries.feed_id = ttrss_feeds.id AND
+
+ if ($n_feed != 0) {
+ $from_qpart = "ttrss_user_entries,ttrss_feeds,ttrss_entries";
+ $feeds_qpart = "ttrss_feeds.hidden = false AND
+ ttrss_user_entries.feed_id = ttrss_feeds.id AND";
+ } else {
+ $from_qpart = "ttrss_user_entries,ttrss_entries";
+ }
+
+ $query = "SELECT count(int_id) AS unread
+ FROM $from_qpart WHERE
ttrss_user_entries.ref_id = ttrss_entries.id AND
- ttrss_feeds.hidden = false AND
$age_qpart AND
- $unread_qpart AND ($match_part) AND ttrss_user_entries.owner_uid = " . $owner_uid);
+ $feeds_qpart
+ $unread_qpart AND ($match_part) AND ttrss_user_entries.owner_uid = $owner_uid";
+
+ $result = db_query($link, $query);
} else {
}
+ function getSubscribedFeeds($link) {
+ $result = db_query($link, "SELECT COUNT(id) AS fn FROM
+ ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]);
+
+ return db_fetch_result($result, 0, "fn");
+ }
+
function getTagCounters($link, $smart_mode = SMART_RPC_COUNTERS) {
if ($smart_mode) {
$ret_arr = array();
- for ($i = -1; $i >= -4; $i--) {
+ for ($i = 0; $i >= -4; $i--) {
$count = getFeedUnread($link, $i);
}
+ function getFeedIcon($id) {
+ switch ($id) {
+ case 0:
+ return "images/archive.png";
+ break;
+ case -1:
+ return "images/mark_set.png";
+ break;
+ case -2:
+ return "images/pub_set.gif";
+ break;
+ case -3:
+ return "images/fresh.png";
+ break;
+ case -4:
+ return "images/tag.png";
+ break;
+ default:
+ if ($id < -10) {
+ return "images/label.png";
+ } else {
+ return ICONS_URL . "/$id.ico";
+ }
+ break;
+ }
+ }
+
function getFeedTitle($link, $id) {
if ($id == -1) {
return __("Starred articles");
return __("Fresh articles");
} else if ($id == -4) {
return __("All articles");
+ } else if ($id == 0) {
+ return __("Archived articles");
} else if ($id < -10) {
$label_id = -$id - 11;
$result = db_query($link, "SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'");
print "<param key=\"num_feeds\" value=\"".
(int)$num_feeds. "\"/>";
+ print "<param key=\"collapsed_feedlist\" value=\"" .
+ (int) get_pref($link, "_COLLAPSED_FEEDLIST") . "\"/>";
+
print "</init-params>";
}
$query_strategy_part = "ttrss_entries.id > 0";
$vfeed_query_part = "(SELECT title FROM ttrss_feeds WHERE
id = feed_id) as feed_title,";
- } else if ($feed >= 0 && $search && $search_mode == "this_cat") {
+ } else if ($feed > 0 && $search && $search_mode == "this_cat") {
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
$query_strategy_part = "ttrss_entries.id > 0";
}
- } else if ($feed >= 0) {
+ } else if ($feed > 0) {
if ($cat_view) {
$query_strategy_part = "feed_id = '$feed'";
}
}
+ } else if ($feed == 0) { // starred virtual feed
+ $query_strategy_part = "feed_id IS NULL";
} else if ($feed == -1) { // starred virtual feed
$query_strategy_part = "marked = true";
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
} */
}
+ if ($feed != "0") {
+ $from_qpart = "ttrss_entries,ttrss_user_entries,ttrss_feeds$ext_tables_part";
+ $feed_check_qpart = "ttrss_feeds.hidden = false AND
+ ttrss_user_entries.feed_id = ttrss_feeds.id AND";
+
+ } else {
+ $from_qpart = "ttrss_entries,ttrss_user_entries$ext_tables_part
+ LEFT JOIN ttrss_feeds ON (feed_id = ttrss_feeds.id)";
+ }
+
$query = "SELECT DISTINCT
guid,
ttrss_entries.id,ttrss_entries.title,
updated,
note,
- unread,feed_id,marked,published,link,last_read,
+ unread,feed_id,marked,published,link,last_read,orig_feed_id,
".SUBSTRING_FOR_DATE."(last_read,1,19) as last_read_noms,
$vfeed_query_part
$content_query_part
".SUBSTRING_FOR_DATE."(updated,1,19) as updated_noms,
author,score
FROM
- ttrss_entries,ttrss_user_entries,ttrss_feeds$ext_tables_part
+ $from_qpart
WHERE
$group_limit_part
- ttrss_feeds.hidden = false AND
- ttrss_user_entries.feed_id = ttrss_feeds.id AND
+ $feed_check_qpart
ttrss_user_entries.ref_id = ttrss_entries.id AND
ttrss_user_entries.owner_uid = '$owner_uid' AND
$search_query_part
note,
ttrss_entries.id as id,title,
updated,
- unread,feed_id,
+ unread,feed_id,orig_feed_id,
marked,link,last_read,
".SUBSTRING_FOR_DATE."(last_read,1,19) as last_read_noms,
$vfeed_query_part
$limit_query_part");
}
+ if (!$feed_title) $feed_title = getFeedTitle($link, $feed_id);
+
return array($result, $feed_title, $feed_site_url, $last_error);
}
unread = NOT unread,last_read = NOW()
WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
}
+
+ $feed_id = getArticleFeed($link, $id);
+ ccache_update($link, $feed_id, $_SESSION["uid"]);
}
function make_guid_from_title($title) {
$catchup_feed_link = "javascript:catchupCurrentFeed()";
$catchup_sel_link = "javascript:catchupSelection()";
+ $archive_sel_link = "javascript:archiveSelection()";
+ $delete_sel_link = "javascript:deleteSelection()";
+
if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) {
$sel_all_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, '', true)";
print "<a $target href=\"$feed_site_url\">".
truncate_string($feed_title,30)."</a>";
} else {
- print $feed_title;
+ if ($feed_id < -10) {
+ $label_id = -11-$feed_id;
+
+ $result = db_query($link, "SELECT fg_color, bg_color
+ FROM ttrss_labels2 WHERE id = '$label_id' AND owner_uid = " .
+ $_SESSION["uid"]);
+
+ if (db_num_rows($result) != 0) {
+ $fg_color = db_fetch_result($result, 0, "fg_color");
+ $bg_color = db_fetch_result($result, 0, "bg_color");
+
+ print "<span style='background : $bg_color; color : $fg_color'>";
+ print $feed_title;
+ print "</span>";
+ } else {
+ print $feed_title;
+ }
+
+ } else {
+ print $feed_title;
+ }
}
if ($search) {
print "<li onclick=\"$catchup_feed_link\"> ".__('Entire feed').
"</li>";
+ if ($feed_id != "0") {
+ print "<li class=\"insensitive\">".__('Selection:')."</li>
+ <li onclick=\"$archive_sel_link\"> ".__('Archive')."</li>
+ <li onclick=\"$delete_sel_link\"> ".__('Delete')."</li>";
+ } else {
+ print "<li class=\"insensitive\">".__('Selection:')."</li>
+ <li onclick=\"$archive_sel_link\"> ".__('Move back')."</li>
+ <li onclick=\"$delete_sel_link\"> ".__('Delete')."</li>";
+ }
+
//print "<li><span class=\"insensitive\">--------</span></li>";
print "<li class=\"insensitive\">".__('Assign label:')."</li>";
if (get_pref($link, 'ENABLE_FEED_CATS')) {
- if ($_COOKIE["ttrss_vf_vclps"] == 1) {
- $cat_hidden = true;
- } else {
- $cat_hidden = false;
- }
+ $cat_hidden = get_pref($link, "_COLLAPSED_SPECIAL");
printCategoryHeader($link, -1, $cat_hidden, false);
}
- $num_starred = getFeedUnread($link, -1);
- $num_published = getFeedUnread($link, -2);
- $num_fresh = getFeedUnread($link, -3);
- $num_total = getFeedUnread($link, -4);
-
- $class = "virt";
-
- if ($num_total > 0) $class .= "Unread";
-
- printFeedEntry(-4, $class, __("All articles"), $num_total,
- "images/tag.png", $link);
-
- $class = "virt";
-
- if ($num_fresh > 0) $class .= "Unread";
-
- printFeedEntry(-3, $class, __("Fresh articles"), $num_fresh,
- "images/fresh.png", $link);
-
- $class = "virt";
-
- if ($num_starred > 0) $class .= "Unread";
-
- $is_ie = (strpos($_SESSION["client.userAgent"], "MSIE") !== false);
-
- if ($is_ie) {
- $mark_img_ext = "gif";
- } else {
- $mark_img_ext = "png";
+ foreach (array(-4, -3, -1, -2, 0) as $i) {
+ printFeedEntry($i, "virt", false, false,
+ false, $link);
}
- printFeedEntry(-1, $class, __("Starred articles"), $num_starred,
- "images/mark_set.$mark_img_ext", $link);
-
- $class = "virt";
-
- if ($num_published > 0) $class .= "Unread";
-
- printFeedEntry(-2, $class, __("Published articles"), $num_published,
- "images/pub_set.gif", $link);
-
if (get_pref($link, 'ENABLE_FEED_CATS')) {
print "</ul></li>";
}
if (db_num_rows($result) > 0) {
if (get_pref($link, 'ENABLE_FEED_CATS')) {
- if ($_COOKIE["ttrss_vf_lclps"] == 1) {
- $cat_hidden = true;
- } else {
- $cat_hidden = false;
- }
+ $cat_hidden = get_pref($link, "_COLLAPSED_LABELS");
printCategoryHeader($link, -2, $cat_hidden, true);
$label_id = -$line['id'] - 11;
$count = getFeedUnread($link, $label_id);
-
- $class = "label";
-
- if ($count > 0) {
- $class .= "Unread";
- }
printFeedEntry($label_id,
- $class, $line["caption"],
- $count, "images/label.png", $link,
+ "label", $line["caption"],
+ $count, false, $link,
false, false, false,
$line['fg_color'], $line['bg_color']);
$class = "feed";
}
- if ($unread > 0) $class .= "Unread";
-
if ($actid == $feed_id) {
$class .= "Selected";
}
// workaround for NULL category
if ($category == __("Uncategorized")) {
- if ($_COOKIE["ttrss_vf_uclps"] == 1) {
- $collapsed = "t";
- }
+ $collapsed = get_pref($link, "_COLLAPSED_UNCAT");
}
$cat_id = sprintf("%d", $cat_id);
}
printFeedEntry($feed_id, $class, $feed, $unread,
- ICONS_URL."/$feed_id.ico", $link, $rtl_content,
+ false, $link, $rtl_content,
$last_updated, $line["last_error"]);
++$lnum;
return true;
}
- function render_login_form($link, $mobile = false) {
- if (!$mobile) {
+ function render_login_form($link, $mobile = 0) {
+ switch ($mobile) {
+ case 0:
require_once "login_form.php";
- } else {
+ break;
+ case 1:
require_once "mobile/login_form.php";
+ break;
+ case 2:
+ require_once "mobile/classic/login_form.php";
}
}
$zoom_mode = false) {
/* we can figure out feed_id from article id anyway, why do we
- * pass feed_id here? */
+ * pass feed_id here? let's ignore the argument :( */
$result = db_query($link, "SELECT feed_id FROM ttrss_user_entries
WHERE ref_id = '$id'");
- $feed_id = db_fetch_result($result, 0, "feed_id");
+ $feed_id = (int) db_fetch_result($result, 0, "feed_id");
if (!$zoom_mode) { print "<article id='$id'><![CDATA["; };
(SELECT icon_url FROM ttrss_feeds WHERE id = feed_id) as icon_url,
num_comments,
author,
+ orig_feed_id,
note
FROM ttrss_entries,ttrss_user_entries
WHERE id = '$id' AND ref_id = id AND owner_uid = " . $_SESSION["uid"]);
print "</div>";
print "<div clear='both'>$entry_comments</div>";
+ if ($line["orig_feed_id"]) {
+
+ $tmp_result = db_query($link, "SELECT * FROM ttrss_archived_feeds
+ WHERE id = ".$line["orig_feed_id"]);
+
+ if (db_num_rows($tmp_result) != 0) {
+
+ print "<div clear='both'>";
+ print __("Originally from:");
+
+ print " ";
+
+ $tmp_line = db_fetch_assoc($tmp_result);
+
+ print "<a target='_blank'
+ href=' " . htmlspecialchars($tmp_line['site_url']) . "'>" .
+ $tmp_line['title'] . "</a>";
+
+ print " ";
+
+ print "<a target='_blank' href='" . htmlspecialchars($tmp_line['feed_url']) . "'>";
+ print "<img title='".__('Feed URL')."'class='tinyFeedIcon' src='images/pub_set.gif'></a>";
+
+ print "</div>";
+ }
+ }
+
print "</div>";
print "<div class=\"postIcon\">" . $feed_icon . "</div>";
$is_unread = false;
}
- $is_ie = (strpos($_SESSION["client.userAgent"], "MSIE") !== false);
-
- if ($is_ie) {
- $mark_img_ext = "gif";
- } else {
- $mark_img_ext = "png";
- }
-
if ($line["marked"] == "t" || $line["marked"] == "1") {
- $marked_pic = "<img id=\"FMPIC-$id\" src=\"images/mark_set.$mark_img_ext\"
+ $marked_pic = "<img id=\"FMPIC-$id\" src=\"images/mark_set.png\"
class=\"markedPic\"
alt=\"Unstar article\" onclick='javascript:tMark($id)'>";
} else {
- $marked_pic = "<img id=\"FMPIC-$id\" src=\"images/mark_unset.$mark_img_ext\"
+ $marked_pic = "<img id=\"FMPIC-$id\" src=\"images/mark_unset.png\"
class=\"markedPic\"
alt=\"Star article\" onclick='javascript:tMark($id)'>";
}
# truncate_string($line["feed_title"],30)."</a> </td>";
# } else {
- print "<td onclick='view($id,$feed_id)' class='hlContent$hlc_suffix' valign='middle' id='HLC-$id'>";
+ print "<td onclick='view($id)' class='hlContent$hlc_suffix' valign='middle' id='HLC-$id'>";
print "<a id=\"RTITLE-$id\"
href=\"" . htmlspecialchars($line["link"]) . "\"
# }
- print "<td class=\"hlUpdated\" onclick='view($id,$feed_id)'><nobr>$updated_fmt </nobr></td>";
+ print "<td class=\"hlUpdated\" onclick='view($id)'><nobr>$updated_fmt </nobr></td>";
print "<td class='hlMarkedPic'>$score_pic</td>";
onclick=\"cdmClicked($id)\"
id=\"CICD-$id\" $cdm_cstyle>";
+ if ($line["orig_feed_id"]) {
+
+ $tmp_result = db_query($link, "SELECT * FROM ttrss_archived_feeds
+ WHERE id = ".$line["orig_feed_id"]);
+
+ if (db_num_rows($tmp_result) != 0) {
+
+ print "<div clear='both'>";
+ print __("Originally from:");
+
+ print " ";
+
+ $tmp_line = db_fetch_assoc($tmp_result);
+
+ print "<a target='_blank'
+ href=' " . htmlspecialchars($tmp_line['site_url']) . "'>" .
+ $tmp_line['title'] . "</a>";
+
+ print " ";
+
+ print "<a target='_blank' href='" . htmlspecialchars($tmp_line['feed_url']) . "'>";
+ print "<img title='".__('Feed URL')."'class='tinyFeedIcon' src='images/pub_set.gif'></a>";
+
+ print "</div>";
+ }
+ }
+
// print "<div class=\"cdmInnerContent\" id=\"CICD-$id\" $cdm_cstyle>";
print "<div id=\"POSTNOTE-$id\">";
* @return void
*/
function clear_feed_articles($link, $id) {
- $result = db_query($link, "DELETE FROM ttrss_user_entries
+
+ if ($id != 0) {
+ $result = db_query($link, "DELETE FROM ttrss_user_entries
WHERE feed_id = '$id' AND marked = false AND owner_uid = " . $_SESSION["uid"]);
+ } else {
+ $result = db_query($link, "DELETE FROM ttrss_user_entries
+ WHERE feed_id IS NULL AND marked = false AND owner_uid = " . $_SESSION["uid"]);
+ }
$result = db_query($link, "DELETE FROM ttrss_entries WHERE
(SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0");
return $str;
}
+
+ function toggle_collapse_cat($link, $cat_id) {
+ if ($cat_id > 0) {
+ db_query($link, "UPDATE ttrss_feed_categories SET
+ collapsed = NOT collapsed WHERE id = '$cat_id' AND owner_uid = " .
+ $_SESSION["uid"]);
+ } else {
+ $pref_name = '';
+
+ switch ($cat_id) {
+ case -1:
+ $pref_name = '_COLLAPSED_SPECIAL';
+ break;
+ case -2:
+ $pref_name = '_COLLAPSED_LABELS';
+ break;
+ case 0:
+ $pref_name = '_COLLAPSED_UNCAT';
+ break;
+ }
+
+ if ($pref_name) {
+ if (get_pref($link, $pref_name)) {
+ set_pref($link, $pref_name, 'false');
+ } else {
+ set_pref($link, $pref_name, 'true');
+ }
+ }
+ }
+ }
+
+ function remove_feed($link, $id, $owner_uid) {
+
+ if ($id > 0) {
+
+ /* save starred articles in Archived feed */
+
+ db_query($link, "BEGIN");
+
+ /* prepare feed if necessary */
+
+ $result = db_query($link, "SELECT id FROM ttrss_archived_feeds
+ WHERE id = '$id'");
+
+ if (db_num_rows($result) == 0) {
+ db_query($link, "INSERT INTO ttrss_archived_feeds
+ (id, owner_uid, title, feed_url, site_url)
+ SELECT id, owner_uid, title, feed_url, site_url from ttrss_feeds
+ WHERE id = '$id'");
+ }
+
+ db_query($link, "UPDATE ttrss_user_entries SET feed_id = NULL
+ WHERE feed_id = '$id' AND
+ marked = true AND owner_uid = $owner_uid");
+
+ /* remove the feed */
+
+ db_query($link, "DELETE FROM ttrss_feeds
+ WHERE id = '$id' AND owner_uid = $owner_uid");
+
+ db_query($link, "COMMIT");
+
+ if (file_exists(ICONS_DIR . "/$id.ico")) {
+ unlink(ICONS_DIR . "/$id.ico");
+ }
+
+ ccache_remove($link, $id, $owner_uid);
+
+ } else {
+ label_remove($link, -11-$id, $owner_uid);
+ ccache_remove($link, -11-$id, $owner_uid);
+ }
+ }
+
+ function remove_feed_category($link, $id, $owner_uid) {
+
+ db_query($link, "DELETE FROM ttrss_feed_categories
+ WHERE id = '$id' AND owner_uid = $owner_uid");
+
+ ccache_remove($link, $id, $owner_uid, true);
+ }
+
+ function archive_article($link, $id, $owner_uid) {
+ db_query($link, "BEGIN");
+
+ $result = db_query($link, "SELECT feed_id FROM ttrss_user_entries
+ WHERE ref_id = '$id' AND owner_uid = $owner_uid");
+
+ if (db_num_rows($result) != 0) {
+
+ /* prepare the archived table */
+
+ $feed_id = (int) db_fetch_result($result, 0, "feed_id");
+
+ if ($feed_id) {
+ $result = db_query($link, "SELECT id FROM ttrss_archived_feeds
+ WHERE id = '$feed_id'");
+
+ if (db_num_rows($result) == 0) {
+ db_query($link, "INSERT INTO ttrss_archived_feeds
+ (id, owner_uid, title, feed_url, site_url)
+ SELECT id, owner_uid, title, feed_url, site_url from ttrss_feeds
+ WHERE id = '$feed_id'");
+ }
+
+ db_query($link, "UPDATE ttrss_user_entries
+ SET orig_feed_id = feed_id, feed_id = NULL
+ WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
+ }
+ }
+
+ db_query($link, "COMMIT");
+ }
+
+ function getArticleFeed($link, $id) {
+ $result = db_query($link, "SELECT feed_id FROM ttrss_user_entries
+ WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
+
+ if (db_num_rows($result) != 0) {
+ return db_fetch_result($result, 0, "feed_id");
+ } else {
+ return 0;
+ }
+ }
?>