]> git.wh0rd.org - tt-rss.git/blob - mobile/functions.php
mobile: show footer only when displaying feeds
[tt-rss.git] / mobile / functions.php
1 <?php
2 define('MOBILE_FEEDLIST_ENABLE_ICONS', false);
3 define('TTRSS_SESSION_NAME', 'ttrss_m_sid');
4
5 function render_feeds_list($link) {
6
7 $tags = $_GET["tags"];
8
9 print "<div id=\"heading\">";
10
11 if ($tags) {
12 print "Tags <span id=\"headingAddon\">
13 (<a href=\"tt-rss.php\">View feeds</a>, ";
14 } else {
15 print "Feeds <span id=\"headingAddon\">
16 (<a href=\"tt-rss.php?tags=1\">View tags</a>, ";
17 }
18
19 print "<a href=\"tt-rss.php?go=sform\">Search</a>, ";
20
21 print "<a href=\"logout.php\">Logout</a>)</span>";
22 print "</div>";
23
24 print "<ul class=\"feedList\">";
25
26 $owner_uid = $_SESSION["uid"];
27
28 if (!$tags) {
29
30 /* virtual feeds */
31
32 if (get_pref($link, 'ENABLE_FEED_CATS')) {
33 print "<li class=\"feedCat\">Special</li>";
34 print "<li class=\"feedCatHolder\"><ul class=\"feedCatList\">";
35 }
36
37 $num_fresh = getFeedUnread($link, -3);
38
39 $class = "virt";
40
41 if ($num_fresh > 0) $class .= "Unread";
42
43 printMobileFeedEntry(-3, $class, __("Fresh articles"), $num_fresh,
44 "../images/fresh.png", $link);
45
46 $num_starred = getFeedUnread($link, -1);
47
48 $class = "virt";
49
50 if ($num_starred > 0) $class .= "Unread";
51
52 printMobileFeedEntry(-1, $class, __("Starred articles"), $num_starred,
53 "../images/mark_set.png", $link);
54
55 $class = "virt";
56
57 $num_published = getFeedUnread($link, -2);
58
59 if ($num_published > 0) $class .= "Unread";
60
61 printMobileFeedEntry(-2, $class, __("Published articles"), $num_published,
62 "../images/pub_set.png", $link);
63
64 if (get_pref($link, 'ENABLE_FEED_CATS')) {
65 print "</ul>";
66 }
67
68 if (GLOBAL_ENABLE_LABELS && get_pref($link, 'ENABLE_LABELS')) {
69
70 $result = db_query($link, "SELECT id,description FROM
71 ttrss_labels WHERE owner_uid = '$owner_uid' ORDER by description");
72
73 if (db_num_rows($result) > 0) {
74 if (get_pref($link, 'ENABLE_FEED_CATS')) {
75 print "<li class=\"feedCat\">Labels</li>";
76 print "<li class=\"feedCatHolder\"><ul class=\"feedCatList\">";
77 } else {
78 // print "<li><hr></li>";
79 }
80 }
81
82 while ($line = db_fetch_assoc($result)) {
83
84 error_reporting (0);
85
86 $count = getFeedUnread($link, -$line["id"]-11);
87
88 $class = "label";
89
90 if ($count > 0) {
91 $class .= "Unread";
92 }
93
94 error_reporting (DEFAULT_ERROR_LEVEL);
95
96 printMobileFeedEntry(-$line["id"]-11,
97 $class, $line["description"], $count, "../images/label.png", $link);
98
99 }
100
101 if (db_num_rows($result) > 0) {
102 if (get_pref($link, 'ENABLE_FEED_CATS')) {
103 print "</ul>";
104 }
105 }
106
107 }
108
109 if (get_pref($link, 'ENABLE_FEED_CATS')) {
110 $order_by_qpart = "category,title";
111 } else {
112 $order_by_qpart = "title";
113 }
114
115 $result = db_query($link, "SELECT ttrss_feeds.*,
116 ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated_noms,
117 (SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries
118 WHERE feed_id = ttrss_feeds.id AND
119 ttrss_user_entries.ref_id = ttrss_entries.id AND
120 owner_uid = '$owner_uid') AS total,
121 (SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries
122 WHERE feed_id = ttrss_feeds.id AND unread = true
123 AND ttrss_user_entries.ref_id = ttrss_entries.id
124 AND owner_uid = '$owner_uid') as unread,
125 cat_id,last_error,
126 ttrss_feed_categories.title AS category,
127 ttrss_feed_categories.collapsed
128 FROM ttrss_feeds LEFT JOIN ttrss_feed_categories
129 ON (ttrss_feed_categories.id = cat_id)
130 WHERE
131 ttrss_feeds.hidden = false AND
132 ttrss_feeds.owner_uid = '$owner_uid' AND parent_feed IS NULL
133 ORDER BY $order_by_qpart");
134
135 $actid = $_GET["actid"];
136
137 /* real feeds */
138
139 $lnum = 0;
140
141 $category = "";
142
143 while ($line = db_fetch_assoc($result)) {
144
145 $feed = db_unescape_string($line["title"]);
146 $feed_id = $line["id"];
147
148 $subop = $_GET["subop"];
149
150 $total = $line["total"];
151 $unread = $line["unread"];
152
153 $rtl_content = sql_bool_to_bool($line["rtl_content"]);
154
155 if ($rtl_content) {
156 $rtl_tag = "dir=\"RTL\"";
157 } else {
158 $rtl_tag = "";
159 }
160
161 $tmp_result = db_query($link,
162 "SELECT id,COUNT(unread) AS unread
163 FROM ttrss_feeds LEFT JOIN ttrss_user_entries
164 ON (ttrss_feeds.id = ttrss_user_entries.feed_id)
165 WHERE parent_feed = '$feed_id' AND unread = true
166 GROUP BY ttrss_feeds.id");
167
168 if (db_num_rows($tmp_result) > 0) {
169 while ($l = db_fetch_assoc($tmp_result)) {
170 $unread += $l["unread"];
171 }
172 }
173
174 $cat_id = $line["cat_id"];
175
176 $tmp_category = $line["category"];
177
178 if (!$tmp_category) {
179 $tmp_category = "Uncategorized";
180 }
181
182 // $class = ($lnum % 2) ? "even" : "odd";
183
184 if ($line["last_error"]) {
185 $class = "error";
186 } else {
187 $class = "feed";
188 }
189
190 if ($unread > 0) $class .= "Unread";
191
192 if ($actid == $feed_id) {
193 $class .= "Selected";
194 }
195
196 if ($category != $tmp_category && get_pref($link, 'ENABLE_FEED_CATS')) {
197
198 if ($category) {
199 print "</ul></li>";
200 }
201
202 $category = $tmp_category;
203
204 $collapsed = $line["collapsed"];
205
206 // workaround for NULL category
207 if ($category == "Uncategorized") {
208 if ($_COOKIE["ttrss_vf_uclps"] == 1) {
209 $collapsed = "t";
210 }
211 }
212
213 if ($collapsed == "t" || $collapsed == "1") {
214 $holder_class = "invisible";
215 $ellipsis = "...";
216 } else {
217 $holder_class = "feedCatHolder";
218 $ellipsis = "";
219 }
220
221 if ($cat_id) {
222 $cat_id_qpart = "cat_id = '$cat_id'";
223 } else {
224 $cat_id_qpart = "cat_id IS NULL";
225 }
226
227 $cat_id = sprintf("%d", $cat_id);
228 $cat_unread = getCategoryUnread($link, $cat_id);
229
230 print "<li class=\"feedCat\">
231 <a href=\"?subop=tc&id=$cat_id\">$tmp_category</a>
232 <a href=\"?go=vf&id=$cat_id&cat=true\">
233 <span class=\"$catctr_class\">($cat_unread)$ellipsis</span>
234 </a></li>";
235
236 print "<li id=\"feedCatHolder\" class=\"$holder_class\">
237 <ul class=\"feedCatList\">";
238 }
239
240 printMobileFeedEntry($feed_id, $class, $feed, $unread,
241 "../icons/$feed_id.ico", $link, $rtl_content);
242
243 ++$lnum;
244 }
245
246 } else {
247 // tags
248
249 $result = db_query($link, "SELECT tag_name,SUM((SELECT COUNT(int_id)
250 FROM ttrss_user_entries WHERE int_id = post_int_id
251 AND unread = true)) AS count FROM ttrss_tags
252 WHERE owner_uid = 2 GROUP BY tag_name ORDER BY tag_name");
253
254 $tags = array();
255
256 while ($line = db_fetch_assoc($result)) {
257 $tags[$line["tag_name"]] += $line["count"];
258 }
259
260 foreach (array_keys($tags) as $tag) {
261
262 $unread = $tags[$tag];
263
264 $class = "tag";
265
266 if ($unread > 0) {
267 $class .= "Unread";
268 }
269
270 printMobileFeedEntry($tag, $class, $tag, $unread,
271 "../images/tag.png", $link);
272
273 }
274
275
276 }
277 }
278
279 function printMobileFeedEntry($feed_id, $class, $feed_title, $unread, $icon_file, $link,
280 $rtl_content = false) {
281
282 if (file_exists($icon_file) && filesize($icon_file) > 0) {
283 $feed_icon = "<img src=\"$icon_file\">";
284 } else {
285 $feed_icon = "<img src=\"../images/blank_icon.gif\">";
286 }
287
288 if ($rtl_content) {
289 $rtl_tag = "dir=\"rtl\"";
290 } else {
291 $rtl_tag = "dir=\"ltr\"";
292 }
293
294 $feed = "<a href=\"?go=vf&id=$feed_id\">$feed_title</a>";
295
296 print "<li class=\"$class\">";
297 # if (get_pref($link, 'ENABLE_FEED_ICONS')) {
298 # print "$feed_icon";
299 # }
300
301 print "<span $rtl_tag>$feed</span> ";
302
303 if ($unread != 0) {
304 print "<span $rtl_tag>($unread)</span>";
305 }
306
307 print "</li>";
308
309 }
310
311 function render_headlines($link) {
312
313 $feed = db_escape_string($_GET["id"]);
314 $limit = db_escape_string($_GET["limit"]);
315 $view_mode = db_escape_string($_GET["viewmode"]);
316 $cat_view = db_escape_string($_GET["cat"]);
317 $subop = $_GET["subop"];
318 $catchup_op = $_GET["catchup_op"];
319
320 if (!$view_mode) {
321 if ($_SESSION["mobile:viewmode"]) {
322 $view_mode = $_SESSION["mobile:viewmode"];
323 } else {
324 $view_mode = "adaptive";
325 }
326 }
327
328 $_SESSION["mobile:viewmode"] = $view_mode;
329
330 if (!$limit) $limit = 30;
331 if (!$feed) $feed = 0;
332
333 if (preg_match("/^-?[0-9][0-9]*$/", $feed) != false) {
334
335 $result = db_query($link, "SELECT rtl_content FROM ttrss_feeds
336 WHERE id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
337
338 if (db_num_rows($result) == 1) {
339 $rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content"));
340 } else {
341 $rtl_content = false;
342 }
343
344 if ($rtl_content) {
345 $rtl_tag = "dir=\"RTL\"";
346 } else {
347 $rtl_tag = "";
348 }
349 } else {
350 $rtl_content = false;
351 $rtl_tag = "";
352 }
353
354 print "<div id=\"headlines\" $rtl_tag>";
355
356 if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
357 update_generic_feed($link, $feed, $cat_view, true);
358 }
359
360 if ($subop == "MarkAllRead" || $catchup_op == "feed") {
361 catchup_feed($link, $feed, $cat_view);
362 }
363
364 if ($catchup_op == "selection") {
365 $ids_to_mark = array_keys($_GET["sel_ids"]);
366 if ($ids_to_mark) {
367 foreach ($ids_to_mark as $id) {
368 db_query($link, "UPDATE ttrss_user_entries SET
369 unread = false,last_read = NOW()
370 WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
371 }
372 }
373 }
374
375 if ($subop == "MarkPageRead" || $catchup_op == "page") {
376 $ids_to_mark = $_SESSION["last_page_ids.$feed"];
377
378 if ($ids_to_mark) {
379
380 foreach ($ids_to_mark as $id) {
381 db_query($link, "UPDATE ttrss_user_entries SET
382 unread = false,last_read = NOW()
383 WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
384 }
385 }
386 }
387
388
389 /// START /////////////////////////////////////////////////////////////////////////////////
390
391 $search = db_escape_string($_GET["query"]);
392 $search_mode = db_escape_string($_GET["search_mode"]);
393 $match_on = db_escape_string($_GET["match_on"]);
394
395 if (!$match_on) {
396 $match_on = "both";
397 }
398
399 $real_offset = $offset * $limit;
400
401 if ($_GET["debug"]) $timing_info = print_checkpoint("H0", $timing_info);
402
403 $qfh_ret = queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view,
404 $search, $search_mode, $match_on, false, $real_offset);
405
406 if ($_GET["debug"]) $timing_info = print_checkpoint("H1", $timing_info);
407
408 $result = $qfh_ret[0];
409 $feed_title = $qfh_ret[1];
410 $feed_site_url = $qfh_ret[2];
411 $last_error = $qfh_ret[3];
412
413 /// STOP //////////////////////////////////////////////////////////////////////////////////
414
415 if (!$result) {
416 print "<div align='center'>
417 Could not display feed (query failed). Please check label match syntax or local configuration.</div>";
418 return;
419 }
420
421 print "<div id=\"heading\">";
422 # if (!$cat_view && file_exists("../icons/$feed.ico") && filesize("../icons/$feed.ico") > 0) {
423 # print "<img class=\"feedIcon\" src=\"../icons/$feed.ico\">";
424 # }
425
426 print "$feed_title <span id=\"headingAddon\">(";
427 print "<a href=\"tt-rss.php\">Back</a>, ";
428 print "<a href=\"tt-rss.php?go=sform&aid=$feed&ic=$cat_view\">Search</a>, ";
429 print "<a href=\"tt-rss.php?go=vf&id=$feed&subop=ForceUpdate\">Update</a>";
430
431 # print "Mark as read: ";
432 # print "<a href=\"tt-rss.php?go=vf&id=$feed&subop=MarkAsRead\">Page</a>, ";
433 # print "<a href=\"tt-rss.php?go=vf&id=$feed&subop=MarkAllRead\">Feed</a>";
434
435 print ")</span>";
436
437 print "&nbsp;" . __('View:');
438
439 print "<form style=\"display : inline\" method=\"GET\" action=\"tt-rss.php\">";
440
441 /* print "<select name=\"viewmode\">
442 <option selected value=\"adaptive\"> " . __('Adaptive') . "</option>
443 <option value=\"all_articles\">" . __('All Articles') . "</option>
444 <option value=\"marked\">" . __('Starred') . "</option>
445 <option value=\"unread\">" . __('Unread') . "</option>
446 </select>"; */
447
448 $sel_values = array(
449 "adaptive" => __("Adaptive"),
450 "all_articles" => __("All Articles"),
451 "unread" => __("Unread"),
452 "marked" => __("Starred"));
453
454 print_select_hash("viewmode", $view_mode, $sel_values);
455
456 print "<input type=\"hidden\" name=\"id\" value=\"$feed\">
457 <input type=\"hidden\" name=\"cat\" value=\"$cat_view\">
458 <input type=\"hidden\" name=\"go\" value=\"vf\">
459 <input type=\"submit\" value=\"".__('Refresh')."\">";
460 print "</form>";
461
462 print "</div>";
463
464 if (db_num_rows($result) > 0) {
465
466 print "<form method=\"GET\" action=\"tt-rss.php\">";
467 print "<input type=\"hidden\" name=\"go\" value=\"vf\">";
468 print "<input type=\"hidden\" name=\"id\" value=\"$feed\">";
469 print "<input type=\"hidden\" name=\"cat\" value=\"$cat_view\">";
470
471 print "<ul class=\"headlines\">";
472
473 $page_art_ids = array();
474
475 $lnum = 0;
476
477 error_reporting (DEFAULT_ERROR_LEVEL);
478
479 $num_unread = 0;
480
481 while ($line = db_fetch_assoc($result)) {
482
483 $class = ($lnum % 2) ? "even" : "odd";
484
485 $id = $line["id"];
486 $feed_id = $line["feed_id"];
487
488 array_push($page_art_ids, $id);
489
490 if ($line["last_read"] == "" &&
491 ($line["unread"] != "t" && $line["unread"] != "1")) {
492
493 $update_pic = "<img id='FUPDPIC-$id' src=\"images/updated.png\"
494 alt=\"Updated\">";
495 } else {
496 $update_pic = "<img id='FUPDPIC-$id' src=\"images/blank_icon.gif\"
497 alt=\"Updated\">";
498 }
499
500 if ($line["unread"] == "t" || $line["unread"] == "1") {
501 $class .= "Unread";
502 ++$num_unread;
503 $is_unread = true;
504 } else {
505 $is_unread = false;
506 }
507
508 if ($line["marked"] == "t" || $line["marked"] == "1") {
509 $marked_pic = "<img alt=\"S\" class='marked' src=\"../images/mark_set.png\">";
510 } else {
511 $marked_pic = "<img alt=\"s\" class='marked' src=\"../images/mark_unset.png\">";
512 }
513
514 if ($line["published"] == "t" || $line["published"] == "1") {
515 $published_pic = "<img alt=\"P\" class='marked' src=\"../images/pub_set.gif\">";
516 } else {
517 $published_pic = "<img alt=\"p\" class='marked' src=\"../images/pub_unset.gif\">";
518 }
519
520 $content_link = "<a href=\"?go=view&id=$id&cat=$cat_view&ret_feed=$feed&feed=$feed_id\">" .
521 $line["title"] . "</a>";
522
523 if (get_pref($link, 'HEADLINES_SMART_DATE')) {
524 $updated_fmt = smart_date_time(strtotime($line["updated"]));
525 } else {
526 $short_date = get_pref($link, 'SHORT_DATE_FORMAT');
527 $updated_fmt = date($short_date, strtotime($line["updated"]));
528 }
529
530 print "<li class='$class' id=\"HROW-$id\">";
531
532 print "<input type=\"checkbox\" name=\"sel_ids[$id]\"
533 onchange=\"toggleSelectRow(this, $id)\">";
534
535 print "<a href=\"?go=vf&id=$feed&ts=$id&cat=$cat_view\">$marked_pic</a>";
536 print "<a href=\"?go=vf&id=$feed&tp=$id&cat=$cat_view\">$published_pic</a>";
537
538 print $content_link;
539
540 if ($line["feed_title"]) {
541 print " (<a href='?go=vf&id=$feed_id'>".
542 $line["feed_title"]."</a>)";
543 }
544
545 print "<span class='hlUpdated'> ($updated_fmt)</span>";
546
547 print "</li>";
548
549
550 ++$lnum;
551 }
552
553 print "</ul>";
554
555 print "<div class='footerAddon'>";
556
557 $_SESSION["last_page_ids.$feed"] = $page_art_ids;
558
559 /* print "<a href=\"tt-rss.php?go=vf&id=$feed&subop=MarkPageRead\">Page</a>, ";
560 print "<a href=\"tt-rss.php?go=vf&id=$feed&subop=MarkAllRead\">Feed</a></div>"; */
561
562 print "<select name=\"catchup_op\">
563 <option value=\"selection\">Selection</option>
564 <option value=\"page\">Page</option>
565 <option value=\"feed\">Entire feed</option>
566 </select>
567 <input type=\"hidden\" name=\"cat\" value=\"$cat_view\">
568 <input type=\"submit\" value=\"Mark as read\">";
569
570 print "</form>";
571
572 } else {
573 print "<div align='center'>No articles found.</div>";
574 }
575
576 }
577
578 function render_article($link) {
579
580 $id = db_escape_string($_GET["id"]);
581 $feed_id = db_escape_string($_GET["feed"]);
582 $ret_feed_id = db_escape_string($_GET["ret_feed"]);
583 $cat_view = db_escape_string($_GET["cat"]);
584
585 $result = db_query($link, "SELECT rtl_content FROM ttrss_feeds
586 WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
587
588 if (db_num_rows($result) == 1) {
589 $rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content"));
590 } else {
591 $rtl_content = false;
592 }
593
594 if ($rtl_content) {
595 $rtl_tag = "dir=\"RTL\"";
596 $rtl_class = "RTL";
597 } else {
598 $rtl_tag = "";
599 $rtl_class = "";
600 }
601
602 $result = db_query($link, "UPDATE ttrss_user_entries
603 SET unread = false,last_read = NOW()
604 WHERE ref_id = '$id' AND feed_id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
605
606 $result = db_query($link, "SELECT title,link,content,feed_id,comments,int_id,
607 marked,published,
608 ".SUBSTRING_FOR_DATE."(updated,1,16) as updated,
609 (SELECT icon_url FROM ttrss_feeds WHERE id = feed_id) as icon_url,
610 num_comments,
611 author
612 FROM ttrss_entries,ttrss_user_entries
613 WHERE id = '$id' AND ref_id = id");
614
615 if ($result) {
616
617 $line = db_fetch_assoc($result);
618
619 $num_comments = $line["num_comments"];
620 $entry_comments = "";
621
622 if ($num_comments > 0) {
623 if ($line["comments"]) {
624 $comments_url = $line["comments"];
625 } else {
626 $comments_url = $line["link"];
627 }
628 $entry_comments = "<a href=\"$comments_url\">$num_comments comments</a>";
629 } else {
630 if ($line["comments"] && $line["link"] != $line["comments"]) {
631 $entry_comments = "<a href=\"".$line["comments"]."\">comments</a>";
632 }
633 }
634
635 $tmp_result = db_query($link, "SELECT DISTINCT tag_name FROM
636 ttrss_tags WHERE post_int_id = " . $line["int_id"] . "
637 ORDER BY tag_name");
638
639 $tags_str = "";
640 $f_tags_str = "";
641
642 $num_tags = 0;
643
644 while ($tmp_line = db_fetch_assoc($tmp_result)) {
645 $num_tags++;
646 $tag = $tmp_line["tag_name"];
647 $tag_str = "<a href=\"?go=vf&id=$tag\">$tag</a>, ";
648 $tags_str .= $tag_str;
649 }
650
651 $tags_str = preg_replace("/, $/", "", $tags_str);
652
653 $parsed_updated = date(get_pref($link, 'SHORT_DATE_FORMAT'),
654 strtotime($line["updated"]));
655
656 print "<div id=\"heading\">";
657
658 # if (file_exists("../icons/$feed_id.ico") && filesize("../icons/$feed_id.ico") > 0) {
659 # print "<img class=\"feedIcon\" src=\"../icons/$feed_id.ico\">";
660 # }
661
662 if (!$cat_view) {
663 $feed_title = getFeedTitle($link, $ret_feed_id);
664 } else {
665 $feed_title = getCategoryTitle($link, $ret_feed_id);
666 $feed_title_native = getFeedTitle($link, $feed_id);
667 }
668
669 if ($feed_title_native) {
670 $feed_link = "<a href=\"tt-rss.php?go=vf&id=$feed_id\">$feed_title_native</a>";
671 $feed_link .= " in <a href=\"tt-rss.php?go=vf&id=$ret_feed_id&cat=$cat_view\">
672 $feed_title</a>";
673 } else {
674 $feed_link = "<a href=\"tt-rss.php?go=vf&id=$ret_feed_id\">$feed_title</a>";
675 }
676
677 print "<a href=\"" . $line["link"] . "\">" .
678 truncate_string($line["title"], 30) . "</a>";
679 print " <span id=\"headingAddon\">$parsed_updated ($feed_link)</span>";
680 print "</div>";
681
682 if ($num_tags > 0) {
683 print "<div class=\"postTags\">Tags: $tags_str</div>";
684 }
685
686 if ($line["marked"] == "t" || $line["marked"] == "1") {
687 $marked_pic = "<img class='marked' src=\"../images/mark_set.png\">";
688 } else {
689 $marked_pic = "<img class='marked' src=\"../images/mark_unset.png\">";
690 }
691
692 if ($line["published"] == "t" || $line["published"] == "1") {
693 $published_pic = "<img class='marked' src=\"../images/pub_set.gif\">";
694 } else {
695 $published_pic = "<img class='marked' src=\"../images/pub_unset.gif\">";
696 }
697
698 print "<div class=\"postStarOps\">";
699 print "<a href=\"?go=view&id=$id&ret_feed=$ret_feed_id&feed=$feed_id&sop=ts\">$marked_pic</a>";
700 print "<a href=\"?go=view&id=$id&ret_feed=$ret_feed_id&feed=$feed_id&sop=tp\">$published_pic</a>";
701 print "</div>";
702
703 print sanitize_rss($link, $line["content"], true);;
704
705 }
706
707 print "</body></html>";
708 }
709
710 function render_search_form($link, $active_feed_id = false, $is_cat = false) {
711
712 print "<div id=\"heading\">";
713
714 print "Search <span id=\"headingAddon\">
715 (<a href=\"tt-rss.php\">Go back</a>)</span></div>";
716
717 print "<form method=\"GET\" action=\"tt-rss.php\" class=\"searchForm\">";
718
719 print "<input type=\"hidden\" name=\"go\" value=\"vf\">";
720 print "<input type=\"hidden\" name=\"id\" value=\"$active_feed_id\">";
721 print "<input type=\"hidden\" name=\"cat\" value=\"$is_cat\">";
722
723 print "<table><tr><td>".__('Search:')."</td><td>";
724 print "<input name=\"query\"></td></tr>";
725
726 print "<tr><td>".__('Where:')."</td><td>";
727
728 print "<select name=\"search_mode\">
729 <option value=\"all_feeds\">".__('All feeds')."</option>";
730
731 $feed_title = getFeedTitle($link, $active_feed_id);
732
733 if (!$is_cat) {
734 $feed_cat_title = getFeedCatTitle($link, $active_feed_id);
735 } else {
736 $feed_cat_title = getCategoryTitle($link, $active_feed_id);
737 }
738
739 if ($active_feed_id && !$is_cat) {
740 print "<option selected value=\"this_feed\">$feed_title</option>";
741 } else {
742 print "<option disabled>".__('This feed')."</option>";
743 }
744
745 if ($is_cat) {
746 $cat_preselected = "selected";
747 }
748
749 if (get_pref($link, 'ENABLE_FEED_CATS') && ($active_feed_id > 0 || $is_cat)) {
750 print "<option $cat_preselected value=\"this_cat\">$feed_cat_title</option>";
751 } else {
752 //print "<option disabled>".__('This category')."</option>";
753 }
754
755 print "</select></td></tr>";
756
757 print "<tr><td>".__('Match on:')."</td><td>";
758
759 $search_fields = array(
760 "title" => __("Title"),
761 "content" => __("Content"),
762 "both" => __("Title or content"));
763
764 print_select_hash("match_on", 3, $search_fields);
765
766 print "</td></tr></table>";
767
768 print "<input type=\"submit\" value=\"".__('Search')."\">";
769
770 print "</form>";
771
772 print "</div>";
773 }
774
775 function toggleMarked($link, $ts_id) {
776 $result = db_query($link, "UPDATE ttrss_user_entries SET marked = NOT marked
777 WHERE ref_id = '$ts_id' AND owner_uid = " . $_SESSION["uid"]);
778 }
779
780 function togglePublished($link, $tp_id) {
781 $result = db_query($link, "UPDATE ttrss_user_entries SET published = NOT published
782 WHERE ref_id = '$tp_id' AND owner_uid = " . $_SESSION["uid"]);
783 }
784 ?>