]> git.wh0rd.org - tt-rss.git/blob - modules/pref-feed-browser.php
feed browser: scope button shows loading prompt
[tt-rss.git] / modules / pref-feed-browser.php
1 <?php
2 function module_pref_feed_browser($link) {
3
4 if (!ENABLE_FEED_BROWSER) {
5 print __("Feed browser is administratively disabled.");
6 return;
7 }
8
9 $subop = $_REQUEST["subop"];
10
11 if ($subop == "details") {
12 $id = db_escape_string($_GET["id"]);
13
14 print "<div class=\"browserFeedInfo\">";
15 print "<b>".__('Feed information:')."</b>";
16
17 $result = db_query($link, "SELECT
18 feed_url,site_url,
19 ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
20 FROM ttrss_feeds WHERE id = '$id' AND
21 auth_login = '' AND auth_pass = '' AND private IS NOT true
22 AND feed_url NOT LIKE '%:%@%/%'");
23
24 if (db_num_rows($result) == 1) {
25
26 print "<div class=\"detailsPart\">";
27
28 $feed_url = db_fetch_result($result, 0, "feed_url");
29 $site_url = db_fetch_result($result, 0, "site_url");
30 $last_updated = db_fetch_result($result, 0, "last_updated");
31
32 if (get_pref($link, 'HEADLINES_SMART_DATE')) {
33 $last_updated = smart_date_time(strtotime($last_updated));
34 } else {
35 $short_date = get_pref($link, 'SHORT_DATE_FORMAT');
36 $last_updated = date($short_date, strtotime($last_updated));
37 }
38
39 print __("Site:")." <a target=\"_blank\" href='$site_url'>$site_url</a> ".
40 "(<a target=\"_blank\" href='$feed_url'>feed</a>), ".
41 __("Last updated:")." $last_updated";
42
43 print "</div>";
44
45 $result = db_query($link, "SELECT
46 ttrss_entries.title,
47 content,link,
48 ".SUBSTRING_FOR_DATE."(date_entered,1,19) as date_entered,
49 ".SUBSTRING_FOR_DATE."(updated,1,19) as updated
50 FROM ttrss_entries,ttrss_user_entries
51 WHERE ttrss_entries.id = ref_id AND feed_id = '$id'
52 ORDER BY updated DESC LIMIT 5");
53
54 if (db_num_rows($result) > 0) {
55
56 print "<b>".__('Last headlines:')."</b><br>";
57
58 print "<div class=\"detailsPart\">";
59 print "<ul class=\"compact\">";
60 while ($line = db_fetch_assoc($result)) {
61
62 if (get_pref($link, 'HEADLINES_SMART_DATE')) {
63 $entry_dt = smart_date_time(strtotime($line["updated"]));
64 } else {
65 $short_date = get_pref($link, 'SHORT_DATE_FORMAT');
66 $entry_dt = date($short_date, strtotime($line["updated"]));
67 }
68
69 print "<li><a target=\"_blank\" href=\"" . $line["link"] . "\">" . $line["title"] . "</a>" .
70 "&nbsp;<span class=\"insensitive\">($entry_dt)</span></li>";
71 }
72 print "</ul></div>";
73 }
74 } else {
75 print "<p>".__("Feed not found.")."</p>";
76 }
77
78 print "</div>";
79
80 return;
81 }
82
83 set_pref($link, "_PREFS_ACTIVE_TAB", "feedBrowser");
84
85 print "<div class=\"insensitive\">".__('This panel shows feeds subscribed by other users of this system, just in case you are interested in them too.')."</div>";
86
87 $limit = db_escape_string($_GET["limit"]);
88
89 if (!$limit) $limit = 25;
90
91 $owner_uid = $_SESSION["uid"];
92
93 /* $result = db_query($link, "SELECT feed_url,COUNT(id) AS subscribers
94 FROM ttrss_feeds WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
95 WHERE tf.feed_url = ttrss_feeds.feed_url
96 AND (private IS true OR feed_url LIKE '%:%@%/%' OR
97 owner_uid = '$owner_uid')) GROUP BY feed_url
98 ORDER BY subscribers DESC LIMIT $limit"); */
99
100 $result = db_query($link, "SELECT feed_url, subscribers FROM
101 ttrss_feedbrowser_cache WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
102 WHERE tf.feed_url = ttrss_feedbrowser_cache.feed_url
103 AND owner_uid = '$owner_uid') ORDER BY subscribers DESC LIMIT $limit");
104
105 print "<br/>";
106
107 print "<div style=\"float : right\">
108 ".__('Top')." <select id=\"feedBrowserLimit\">";
109
110 foreach (array(25, 50, 100) as $l) {
111 $issel = ($l == $limit) ? "selected" : "";
112 print "<option $issel>$l</option>";
113 }
114
115 print "</select>
116 <input type=\"submit\" class=\"button\"
117 onclick=\"updateBigFeedBrowserBtn()\" value=\"".__('Show')."\">
118 </div>";
119
120 if (db_num_rows($result) > 0) {
121
122 print "<div id=\"fbrOpToolbar\">
123 <input type='submit' class='button' onclick=\"feedBrowserSubscribe()\"
124 disabled=\"true\" value=\"".__('Subscribe')."\"></div>";
125
126 print "<ul class='nomarks' id='browseBigFeedList'>";
127
128 $feedctr = 0;
129
130 while ($line = db_fetch_assoc($result)) {
131 $feed_url = $line["feed_url"];
132 $subscribers = $line["subscribers"];
133
134 // mysql returns NULL records first by default
135 if (DB_TYPE == "mysql") $order_fix = "DESC";
136
137 $det_result = db_query($link, "SELECT site_url,title,id
138 FROM ttrss_feeds WHERE feed_url = '$feed_url'
139 ORDER BY last_updated $order_fix LIMIT 1");
140
141 $details = db_fetch_assoc($det_result);
142
143 $icon_file = ICONS_DIR . "/" . $details["id"] . ".ico";
144
145 if (file_exists($icon_file) && filesize($icon_file) > 0) {
146 $feed_icon = "<img class=\"tinyFeedIcon\" src=\"" . ICONS_URL .
147 "/".$details["id"].".ico\">";
148 } else {
149 $feed_icon = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">";
150 }
151
152 $check_box = "<input onclick='toggleSelectFBListRow(this)' class='feedBrowseCB'
153 type=\"checkbox\" id=\"FBCHK-" . $details["id"] . "\">";
154
155 $class = ($feedctr % 2) ? "even" : "odd";
156
157 print "<li class='$class' id=\"FBROW-".$details["id"]."\">$check_box".
158 "$feed_icon ";
159
160 print "<a href=\"javascript:browserToggleExpand('".$details["id"]."')\">" .
161 $details["title"] ."</a>&nbsp;" .
162 "<span class='subscribers'>($subscribers)</span>";
163
164 print "<div class=\"browserDetails\" style=\"display : none\" id=\"BRDET-" . $details["id"] . "\">";
165 print "</div>";
166
167 print "</li>";
168
169 ++$feedctr;
170 }
171
172 print "</ul>";
173
174 }
175
176 if ($feedctr == 0) {
177 print "<div>".__('No feeds found.')."</div>";
178 }
179
180 print "</div>";
181 }
182 ?>