]> git.wh0rd.org Git - tt-rss.git/blob - include/feedbrowser.php
1. per-feed option STRIP_IMAGES should now also affect other media tags
[tt-rss.git] / include / feedbrowser.php
1 <?php
2         function make_feed_browser($search, $limit, $mode = 1) {
3
4                 if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return;
5
6                 $rv = '';
7
8         $pdo = Db::pdo();
9
10                 if ($search) {
11             $search = $pdo->quote($search);
12
13             $search_qpart = "AND (UPPER(feed_url) LIKE UPPER('%$search%') OR
14                                                 UPPER(title) LIKE UPPER('%$search%'))";
15                 } else {
16                         $search_qpart = "";
17                 }
18
19                 if ($mode == 1) {
20                         $sth = $pdo->prepare("SELECT feed_url, site_url, title, SUM(subscribers) AS subscribers FROM
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
24                                                         (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
25                                                                 WHERE tf.feed_url = qqq.feed_url
26                                                                         AND owner_uid = ?) $search_qpart
27                                                 GROUP BY feed_url, site_url, title ORDER BY subscribers DESC LIMIT " . (int)$limit);
28                         $sth->execute([$_SESSION['uid']]);
29
30                 } else if ($mode == 2) {
31                         $sth = $pdo->prepare("SELECT *,
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
39                                                                 owner_uid = :uid) = 0   AND
40                                                 owner_uid = :uid $search_qpart
41                                                 ORDER BY id DESC LIMIT " . (int)$limit);
42
43                         $sth->execute([":uid" => $_SESSION['uid']]);
44                 }
45
46                 $feedctr = 0;
47
48                 while ($line = $sth->fetch()) {
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
62                                 $site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
63                                                         href=\"$site_url\">
64                                                         <span class=\"fb_feedTitle\">".
65                                 htmlspecialchars($line["title"])."</span></a>";
66
67                                 $feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
68                                                         href=\"$feed_url\"><img src='images/pub_set.png'
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"]);
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) {
84                                         $archived = sprintf(_ngettext("%d archived article", "%d archived articles", (int) $line['articles_archived']), $line['articles_archived']);
85                                         $archived = "&nbsp;<span class='subscribers'>($archived)</span>";
86                                 } else {
87                                         $archived = '';
88                                 }
89
90                                 $site_url = "<a target=\"_blank\" rel=\"noopener noreferrer\"
91                                                         href=\"$site_url\">
92                                                         <span class=\"fb_feedTitle\">".
93                                 htmlspecialchars($line["title"])."</span></a>";
94
95                                 $feed_url = "<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"fb_feedUrl\"
96                                                         href=\"$feed_url\"><img src='images/pub_set.png'
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         }