]>
Commit | Line | Data |
---|---|---|
f27d955a AD |
1 | <?php |
2 | function module_pref_feed_browser($link) { | |
3 | ||
4 | if (!ENABLE_FEED_BROWSER) { | |
89cb787e | 5 | print __("Feed browser is administratively disabled."); |
f27d955a AD |
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\">"; | |
89cb787e | 15 | print "<b>".__('Feed information:')."</b>"; |
f27d955a AD |
16 | |
17 | $result = db_query($link, "SELECT | |
18 | feed_url,site_url, | |
fc2b26a6 | 19 | ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated |
38426fb1 | 20 | FROM ttrss_feeds WHERE id = '$id' AND |
fc1266df AD |
21 | auth_login = '' AND auth_pass = '' AND private IS NOT true |
22 | AND feed_url NOT LIKE '%:%@%/%'"); | |
f27d955a | 23 | |
38426fb1 | 24 | if (db_num_rows($result) == 1) { |
f27d955a | 25 | |
f27d955a | 26 | print "<div class=\"detailsPart\">"; |
f27d955a | 27 | |
38426fb1 AD |
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 | ||
562ecfcf AD |
39 | print __("Site:")." <a target=\"_blank\" href='$site_url'>$site_url</a> ". |
40 | "(<a target=\"_blank\" href='$feed_url'>feed</a>), ". | |
38426fb1 AD |
41 | __("Last updated:")." $last_updated"; |
42 | ||
43 | print "</div>"; | |
44 | ||
45 | $result = db_query($link, "SELECT | |
46 | ttrss_entries.title, | |
47 | content,link, | |
2ac6b765 AD |
48 | ".SUBSTRING_FOR_DATE."(date_entered,1,19) as date_entered, |
49 | ".SUBSTRING_FOR_DATE."(updated,1,19) as updated | |
38426fb1 AD |
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 | ||
562ecfcf | 69 | print "<li><a target=\"_blank\" href=\"" . $line["link"] . "\">" . $line["title"] . "</a>" . |
38426fb1 AD |
70 | " <span class=\"insensitive\">($entry_dt)</span></li>"; |
71 | } | |
72 | print "</ul></div>"; | |
73 | } | |
74 | } else { | |
75 | print "<p>".__("Feed not found.")."</p>"; | |
f27d955a AD |
76 | } |
77 | ||
78 | print "</div>"; | |
79 | ||
80 | return; | |
81 | } | |
82 | ||
fe8d2059 AD |
83 | set_pref($link, "_PREFS_ACTIVE_TAB", "feedBrowser"); |
84 | ||
f27d955a AD |
85 | $limit = db_escape_string($_GET["limit"]); |
86 | ||
76e9a473 AD |
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 | ||
f27d955a AD |
95 | if (!$limit) $limit = 25; |
96 | ||
97 | $owner_uid = $_SESSION["uid"]; | |
98 | ||
759c70a3 | 99 | /* $result = db_query($link, "SELECT feed_url,COUNT(id) AS subscribers |
f27d955a AD |
100 | FROM ttrss_feeds WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf |
101 | WHERE tf.feed_url = ttrss_feeds.feed_url | |
a6bc72df AD |
102 | AND (private IS true OR feed_url LIKE '%:%@%/%' OR |
103 | owner_uid = '$owner_uid')) GROUP BY feed_url | |
759c70a3 AD |
104 | ORDER BY subscribers DESC LIMIT $limit"); */ |
105 | ||
572646a9 AD |
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 | ||
99c6ebf1 | 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>"; */ |
572646a9 | 118 | |
99c6ebf1 | 119 | print "<div class=\"feedEditSearch\"> |
76e9a473 AD |
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')."\"> | |
99c6ebf1 AD |
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>"; | |
76e9a473 AD |
140 | |
141 | if ($browser_search) { | |
142 | $search_qpart = " AND ( | |
931dcbc1 AD |
143 | UPPER(ttrss_feedbrowser_cache.feed_url) LIKE UPPER('%$browser_search%') OR |
144 | UPPER(title) LIKE UPPER('%$browser_search%'))"; | |
76e9a473 AD |
145 | } else { |
146 | $search_qpart = ""; | |
147 | } | |
148 | ||
149 | $result = db_query($link, "SELECT ttrss_feedbrowser_cache.feed_url, | |
931dcbc1 | 150 | subscribers,title |
76e9a473 | 151 | FROM |
e51b9cb0 | 152 | ttrss_feedbrowser_cache |
76e9a473 AD |
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 | ||
e5e9b890 | 160 | print "<br/>"; |
f27d955a | 161 | |
db5c7f5d | 162 | if (db_num_rows($result) > 0) { |
f27d955a | 163 | |
db5c7f5d AD |
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 = $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); | |
040ed8c6 AD |
184 | |
185 | if ($details) { | |
f27d955a | 186 | |
040ed8c6 AD |
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> " . | |
206 | "<span class='subscribers'>($subscribers)</span>"; | |
db5c7f5d | 207 | |
040ed8c6 AD |
208 | print "<div class=\"browserDetails\" style=\"display : none\" id=\"BRDET-" . $details["id"] . "\">"; |
209 | print "</div>"; | |
210 | ||
211 | print "</li>"; | |
212 | ||
213 | ++$feedctr; | |
214 | } | |
db5c7f5d AD |
215 | } |
216 | ||
217 | print "</ul>"; | |
218 | ||
f27d955a AD |
219 | } |
220 | ||
221 | if ($feedctr == 0) { | |
572646a9 | 222 | print_notice(__("Couldn't find any feeds available for subscription.")); |
f27d955a AD |
223 | } |
224 | ||
f27d955a AD |
225 | print "</div>"; |
226 | } | |
227 | ?> |