]> git.wh0rd.org Git - 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 ?>