]> git.wh0rd.org - tt-rss.git/blame - include/feedbrowser.php
feedbrowser hack
[tt-rss.git] / include / feedbrowser.php
CommitLineData
23f36f75 1<?php
a42c55f0 2 function make_feed_browser($search, $limit, $mode = 1) {
55c7f092 3
0e653f75
AK
4 if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
5
55c7f092
AD
6 $rv = '';
7
4ff8bdcb
AD
8 $pdo = Db::pdo();
9
55c7f092 10 if ($search) {
4ff8bdcb
AD
11 $search = $pdo->quote($search);
12
13 $search_qpart = "AND (UPPER(feed_url) LIKE UPPER('%$search%') OR
55c7f092
AD
14 UPPER(title) LIKE UPPER('%$search%'))";
15 } else {
16 $search_qpart = "";
17 }
18
19 if ($mode == 1) {
4ff8bdcb 20 $sth = $pdo->prepare("SELECT feed_url, site_url, title, SUM(subscribers) AS subscribers FROM
55c7f092
AD
21 (SELECT feed_url, site_url, title, subscribers FROM ttrss_feedbrowser_cache UNION ALL
22 SELECT feed_url, site_url, title, subscribers FROM ttrss_linked_feeds) AS qqq
23 WHERE
e52034b4 24 (SELECT COUNT(id) != 0 FROM ttrss_feeds AS tf
55c7f092 25 WHERE tf.feed_url = qqq.feed_url
e52034b4 26 ) $search_qpart
d00d5153
AD
27 GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT " . (int)$limit);
28 $sth->execute([$_SESSION['uid']]);
55c7f092
AD
29
30 } else if ($mode == 2) {
4ff8bdcb 31 $sth = $pdo->prepare("SELECT *,
55c7f092
AD
32 (SELECT COUNT(*) FROM ttrss_user_entries WHERE
33 orig_feed_id = ttrss_archived_feeds.id) AS articles_archived
34 FROM
35 ttrss_archived_feeds
36 WHERE
37 (SELECT COUNT(*) FROM ttrss_feeds
38 WHERE ttrss_feeds.feed_url = ttrss_archived_feeds.feed_url AND
4ff8bdcb
AD
39 owner_uid = :uid) = 0 AND
40 owner_uid = :uid $search_qpart
d00d5153 41 ORDER BY id DESC LIMIT " . (int)$limit);
4ff8bdcb 42
d00d5153 43 $sth->execute([":uid" => $_SESSION['uid']]);
55c7f092
AD
44 }
45
46 $feedctr = 0;
47
4ff8bdcb 48 while ($line = $sth->fetch()) {
55c7f092
AD
49
50 if ($mode == 1) {
51
52 $feed_url = htmlspecialchars($line["feed_url"]);
53 $site_url = htmlspecialchars($line["site_url"]);
54 $subscribers = $line["subscribers"];
55
56 $check_box = "<input onclick='toggleSelectListRow2(this)'
57 dojoType=\"dijit.form.CheckBox\"
58 type=\"checkbox\" \">";
59
60 $class = ($feedctr % 2) ? "even" : "odd";
61
ba2853ca 62 $site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
55c7f092
AD
63 href=\"$site_url\">
64 <span class=\"fb_feedTitle\">".
65 htmlspecialchars($line["title"])."</span></a>";
66
ba2853ca 67 $feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
4a80c57c 68 href=\"$feed_url\"><img src='images/pub_set.png'
55c7f092
AD
69 style='vertical-align : middle'></a>";
70
71 $rv .= "<li>$check_box $feed_url $site_url".
72 "&nbsp;<span class='subscribers'>($subscribers)</span></li>";
73
74 } else if ($mode == 2) {
75 $feed_url = htmlspecialchars($line["feed_url"]);
76 $site_url = htmlspecialchars($line["site_url"]);
55c7f092
AD
77
78 $check_box = "<input onclick='toggleSelectListRow2(this)' dojoType=\"dijit.form.CheckBox\"
79 type=\"checkbox\">";
80
81 $class = ($feedctr % 2) ? "even" : "odd";
82
83 if ($line['articles_archived'] > 0) {
967f0619 84 $archived = sprintf(_ngettext("%d archived article", "%d archived articles", (int) $line['articles_archived']), $line['articles_archived']);
55c7f092
AD
85 $archived = "&nbsp;<span class='subscribers'>($archived)</span>";
86 } else {
87 $archived = '';
88 }
89
ba2853ca 90 $site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
55c7f092
AD
91 href=\"$site_url\">
92 <span class=\"fb_feedTitle\">".
93 htmlspecialchars($line["title"])."</span></a>";
94
ba2853ca 95 $feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
4a80c57c 96 href=\"$feed_url\"><img src='images/pub_set.png'
55c7f092
AD
97 style='vertical-align : middle'></a>";
98
99
100 $rv .= "<li id=\"FBROW-".$line["id"]."\">".
101 "$check_box $feed_url $site_url $archived</li>";
102 }
103
104 ++$feedctr;
105 }
106
107 if ($feedctr == 0) {
108 $rv .= "<li style=\"text-align : center\"><p>".__('No feeds found.')."</p></li>";
109 }
110
111 return $rv;
112 }