]> git.wh0rd.org - tt-rss.git/blob - modules/pref-feed-browser.php
use popup feedbrowser for main UI (4)
[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 $limit = db_escape_string($_GET["limit"]);
86
87 $browser_search = db_escape_string($_GET["search"]);
88
89 if (array_key_exists("search", $_GET)) {
90 $_SESSION["prefs_browser_search"] = $browser_search;
91 } else {
92 $browser_search = $_SESSION["prefs_browser_search"];
93 }
94
95 if (!$limit) $limit = 25;
96
97 $owner_uid = $_SESSION["uid"];
98
99 /* $result = db_query($link, "SELECT feed_url,COUNT(id) AS subscribers
100 FROM ttrss_feeds WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
101 WHERE tf.feed_url = ttrss_feeds.feed_url
102 AND (private IS true OR feed_url LIKE '%:%@%/%' OR
103 owner_uid = '$owner_uid')) GROUP BY feed_url
104 ORDER BY subscribers DESC LIMIT $limit"); */
105
106 $result = db_query($link, "SELECT COUNT(feed_url) AS cfu FROM
107 ttrss_feedbrowser_cache");
108
109 $cfu = db_fetch_result($result, 0, "cfu");
110
111 if ($cfu == 0) {
112 print_warning(__("Feed browser cache information is missing. Please refer to the <a class='visibleLink' target='_blank' href='http://tt-rss.org/trac/wiki/FeedBrowser'>wiki</a> for more information."));
113 return;
114
115 }
116
117 /* 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>"; */
118
119 print "<div class=\"feedEditSearch\">
120 <input id=\"feed_browser_search\" size=\"20\" type=\"search\"
121 onfocus=\"javascript:disableHotkeys();\"
122 onblur=\"javascript:enableHotkeys();\"
123 onchange=\"javascript:updateBigFeedBrowserBtn()\" value=\"$browser_search\">
124 <input type=\"submit\" class=\"button\"
125 onclick=\"javascript:updateBigFeedBrowserBtn()\" value=\"".__('Search')."\">
126 </div>";
127
128 print "<div>
129 ".__('Top')." <select id=\"feedBrowserLimit\">";
130
131 foreach (array(25, 50, 100, 200) as $l) {
132 $issel = ($l == $limit) ? "selected" : "";
133 print "<option $issel>$l</option>";
134 }
135
136 print "</select>
137 <input type=\"submit\" class=\"button\"
138 onclick=\"updateBigFeedBrowserBtn()\" value=\"".__('Show')."\">
139 </div>";
140
141 if ($browser_search) {
142 $search_qpart = " AND (
143 UPPER(ttrss_feedbrowser_cache.feed_url) LIKE UPPER('%$browser_search%') OR
144 UPPER(title) LIKE UPPER('%$browser_search%'))";
145 } else {
146 $search_qpart = "";
147 }
148
149 $result = db_query($link, "SELECT ttrss_feedbrowser_cache.feed_url,
150 subscribers,title
151 FROM
152 ttrss_feedbrowser_cache
153 WHERE
154 (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
155 WHERE tf.feed_url = ttrss_feedbrowser_cache.feed_url
156 AND owner_uid = '$owner_uid')
157 $search_qpart
158 ORDER BY subscribers DESC LIMIT $limit");
159
160 print "<br/>";
161
162 if (db_num_rows($result) > 0) {
163
164 print "<div id=\"fbrOpToolbar\">
165 <input type='submit' class='button' onclick=\"feedBrowserSubscribe()\"
166 disabled=\"true\" value=\"".__('Subscribe')."\"></div>";
167
168 print "<ul class='nomarks' id='browseBigFeedList'>";
169
170 $feedctr = 0;
171
172 while ($line = db_fetch_assoc($result)) {
173 $feed_url = db_escape_string($line["feed_url"]);
174 $subscribers = $line["subscribers"];
175
176 // mysql returns NULL records first by default
177 if (DB_TYPE == "mysql") $order_fix = "DESC";
178
179 $det_result = db_query($link, "SELECT site_url,title,id
180 FROM ttrss_feeds WHERE feed_url = '$feed_url'
181 ORDER BY last_updated $order_fix LIMIT 1");
182
183 $details = db_fetch_assoc($det_result);
184
185 if ($details) {
186
187 $icon_file = ICONS_DIR . "/" . $details["id"] . ".ico";
188
189 if (file_exists($icon_file) && filesize($icon_file) > 0) {
190 $feed_icon = "<img class=\"tinyFeedIcon\" src=\"" . ICONS_URL .
191 "/".$details["id"].".ico\">";
192 } else {
193 $feed_icon = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">";
194 }
195
196 $check_box = "<input onclick='toggleSelectFBListRow(this)' class='feedBrowseCB'
197 type=\"checkbox\" id=\"FBCHK-" . $details["id"] . "\">";
198
199 $class = ($feedctr % 2) ? "even" : "odd";
200
201 print "<li class='$class' id=\"FBROW-".$details["id"]."\">$check_box".
202 "$feed_icon ";
203
204 print "<a href=\"javascript:browserToggleExpand('".$details["id"]."')\">" .
205 $details["title"] ."</a>&nbsp;" .
206 "<span class='subscribers'>($subscribers)</span>";
207
208 print "<div class=\"browserDetails\" style=\"display : none\" id=\"BRDET-" . $details["id"] . "\">";
209 print "</div>";
210
211 print "</li>";
212
213 ++$feedctr;
214 }
215 }
216
217 print "</ul>";
218
219 }
220
221 if ($feedctr == 0) {
222 print_notice(__("Couldn't find any feeds available for subscription."));
223 }
224
225 print "</div>";
226 }
227 ?>