feedbrowser.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. function make_feed_browser($search, $limit, $mode = 1) {
  3. if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
  4. $owner_uid = $_SESSION["uid"];
  5. $rv = '';
  6. if ($search) {
  7. $search_qpart = "AND (UPPER(feed_url) LIKE UPPER('%$search%') OR
  8. UPPER(title) LIKE UPPER('%$search%'))";
  9. } else {
  10. $search_qpart = "";
  11. }
  12. if ($mode == 1) {
  13. /* $result = db_query("SELECT feed_url, subscribers FROM
  14. ttrss_feedbrowser_cache WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
  15. WHERE tf.feed_url = ttrss_feedbrowser_cache.feed_url
  16. AND owner_uid = '$owner_uid') $search_qpart
  17. ORDER BY subscribers DESC LIMIT $limit"); */
  18. $result = db_query("SELECT feed_url, site_url, title, SUM(subscribers) AS subscribers FROM
  19. (SELECT feed_url, site_url, title, subscribers FROM ttrss_feedbrowser_cache UNION ALL
  20. SELECT feed_url, site_url, title, subscribers FROM ttrss_linked_feeds) AS qqq
  21. WHERE
  22. (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
  23. WHERE tf.feed_url = qqq.feed_url
  24. AND owner_uid = '$owner_uid') $search_qpart
  25. GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT $limit");
  26. } else if ($mode == 2) {
  27. $result = db_query("SELECT *,
  28. (SELECT COUNT(*) FROM ttrss_user_entries WHERE
  29. orig_feed_id = ttrss_archived_feeds.id) AS articles_archived
  30. FROM
  31. ttrss_archived_feeds
  32. WHERE
  33. (SELECT COUNT(*) FROM ttrss_feeds
  34. WHERE ttrss_feeds.feed_url = ttrss_archived_feeds.feed_url AND
  35. owner_uid = '$owner_uid') = 0 AND
  36. owner_uid = '$owner_uid' $search_qpart
  37. ORDER BY id DESC LIMIT $limit");
  38. }
  39. $feedctr = 0;
  40. while ($line = db_fetch_assoc($result)) {
  41. if ($mode == 1) {
  42. $feed_url = htmlspecialchars($line["feed_url"]);
  43. $site_url = htmlspecialchars($line["site_url"]);
  44. $subscribers = $line["subscribers"];
  45. $check_box = "<input onclick='toggleSelectListRow2(this)'
  46. dojoType=\"dijit.form.CheckBox\"
  47. type=\"checkbox\" \">";
  48. $class = ($feedctr % 2) ? "even" : "odd";
  49. $site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
  50. href=\"$site_url\">
  51. <span class=\"fb_feedTitle\">".
  52. htmlspecialchars($line["title"])."</span></a>";
  53. $feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
  54. href=\"$feed_url\"><img src='images/pub_set.png'
  55. style='vertical-align : middle'></a>";
  56. $rv .= "<li>$check_box $feed_url $site_url".
  57. "&nbsp;<span class='subscribers'>($subscribers)</span></li>";
  58. } else if ($mode == 2) {
  59. $feed_url = htmlspecialchars($line["feed_url"]);
  60. $site_url = htmlspecialchars($line["site_url"]);
  61. $check_box = "<input onclick='toggleSelectListRow2(this)' dojoType=\"dijit.form.CheckBox\"
  62. type=\"checkbox\">";
  63. $class = ($feedctr % 2) ? "even" : "odd";
  64. if ($line['articles_archived'] > 0) {
  65. $archived = sprintf(_ngettext("%d archived article", "%d archived articles", (int) $line['articles_archived']), $line['articles_archived']);
  66. $archived = "&nbsp;<span class='subscribers'>($archived)</span>";
  67. } else {
  68. $archived = '';
  69. }
  70. $site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
  71. href=\"$site_url\">
  72. <span class=\"fb_feedTitle\">".
  73. htmlspecialchars($line["title"])."</span></a>";
  74. $feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
  75. href=\"$feed_url\"><img src='images/pub_set.png'
  76. style='vertical-align : middle'></a>";
  77. $rv .= "<li id=\"FBROW-".$line["id"]."\">".
  78. "$check_box $feed_url $site_url $archived</li>";
  79. }
  80. ++$feedctr;
  81. }
  82. if ($feedctr == 0) {
  83. $rv .= "<li style=\"text-align : center\"><p>".__('No feeds found.')."</p></li>";
  84. }
  85. return $rv;
  86. }