feedbrowser.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. function make_feed_browser($link, $search, $limit, $mode = 1) {
  3. $owner_uid = $_SESSION["uid"];
  4. $rv = '';
  5. if ($search) {
  6. $search_qpart = "AND (UPPER(feed_url) LIKE UPPER('%$search%') OR
  7. UPPER(title) LIKE UPPER('%$search%'))";
  8. } else {
  9. $search_qpart = "";
  10. }
  11. if ($mode == 1) {
  12. /* $result = db_query($link, "SELECT feed_url, subscribers FROM
  13. ttrss_feedbrowser_cache WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
  14. WHERE tf.feed_url = ttrss_feedbrowser_cache.feed_url
  15. AND owner_uid = '$owner_uid') $search_qpart
  16. ORDER BY subscribers DESC LIMIT $limit"); */
  17. $result = db_query($link, "SELECT feed_url, site_url, title, SUM(subscribers) AS subscribers FROM
  18. (SELECT feed_url, site_url, title, subscribers FROM ttrss_feedbrowser_cache UNION ALL
  19. SELECT feed_url, site_url, title, subscribers FROM ttrss_linked_feeds) AS qqq
  20. WHERE
  21. (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
  22. WHERE tf.feed_url = qqq.feed_url
  23. AND owner_uid = '$owner_uid') $search_qpart
  24. GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT $limit");
  25. } else if ($mode == 2) {
  26. $result = db_query($link, "SELECT *,
  27. (SELECT COUNT(*) FROM ttrss_user_entries WHERE
  28. orig_feed_id = ttrss_archived_feeds.id) AS articles_archived
  29. FROM
  30. ttrss_archived_feeds
  31. WHERE
  32. (SELECT COUNT(*) FROM ttrss_feeds
  33. WHERE ttrss_feeds.feed_url = ttrss_archived_feeds.feed_url AND
  34. owner_uid = '$owner_uid') = 0 AND
  35. owner_uid = '$owner_uid' $search_qpart
  36. ORDER BY id DESC LIMIT $limit");
  37. }
  38. $feedctr = 0;
  39. while ($line = db_fetch_assoc($result)) {
  40. if ($mode == 1) {
  41. $feed_url = htmlspecialchars($line["feed_url"]);
  42. $site_url = htmlspecialchars($line["site_url"]);
  43. $subscribers = $line["subscribers"];
  44. $check_box = "<input onclick='toggleSelectListRow2(this)'
  45. dojoType=\"dijit.form.CheckBox\"
  46. type=\"checkbox\" \">";
  47. $class = ($feedctr % 2) ? "even" : "odd";
  48. $site_url = "<a target=\"_blank\"
  49. href=\"$site_url\">
  50. <span class=\"fb_feedTitle\">".
  51. htmlspecialchars($line["title"])."</span></a>";
  52. $feed_url = "<a target=\"_blank\" class=\"fb_feedUrl\"
  53. href=\"$feed_url\"><img src='images/pub_set.svg'
  54. style='vertical-align : middle'></a>";
  55. $rv .= "<li>$check_box $feed_url $site_url".
  56. "&nbsp;<span class='subscribers'>($subscribers)</span></li>";
  57. } else if ($mode == 2) {
  58. $feed_url = htmlspecialchars($line["feed_url"]);
  59. $site_url = htmlspecialchars($line["site_url"]);
  60. $title = htmlspecialchars($line["title"]);
  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", $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\"
  71. href=\"$site_url\">
  72. <span class=\"fb_feedTitle\">".
  73. htmlspecialchars($line["title"])."</span></a>";
  74. $feed_url = "<a target=\"_blank\" class=\"fb_feedUrl\"
  75. href=\"$feed_url\"><img src='images/pub_set.svg'
  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. }
  87. ?>