]> ruin.nu Git - ndwebbie.git/blobdiff - NDWeb/Pages/Forum.pm
Don't show ingal launch confirmations as intel
[ndwebbie.git] / NDWeb / Pages / Forum.pm
index d494b2587dd81979f1b0baca331b05773cad0b35..1bd5793134406cb9a769b7bbb6071f9c1ea2c821 100644 (file)
@@ -170,16 +170,15 @@ sub render_body {
                $threads->execute($ND::UID) or warn $DBH->errstr;
                my @categories;
                my $category = {fcid => 0};
-               my $board = {fbid => 0};
+               my $board = {id => 0};
                while (my $thread = $threads->fetchrow_hashref){
                        if ($category->{fcid} != $thread->{fcid}){
                                delete $category->{fcid};
                                $category = {fcid => $thread->{fcid}, category => $thread->{category}};
                                push @categories,$category;
                        }
-                       if ($board->{fbid} != $thread->{fbid}){
-                               delete $board->{fbid};
-                               $board = {fbid => $thread->{fbid}, board => $thread->{board}};
+                       if ($board->{id} != $thread->{fbid}){
+                               $board = {id => $thread->{fbid}, board => $thread->{board}};
                                push @{$category->{Boards}},$board;
                        }
                        delete $thread->{fcid};
@@ -189,7 +188,6 @@ sub render_body {
                        push @{$board->{Threads}},$thread;
                }
                delete $category->{fcid};
-               delete $board->{fbid};
                $BODY->param(Categories => \@categories);
 
        }elsif($board){ #List threads in this board
@@ -254,12 +252,13 @@ sub render_body {
        }else{ #List boards
                $BODY->param(Overview => 1);
                my $boards = $DBH->prepare(q{SELECT fcid,category,fb.fbid AS id,fb.board
-                       ,count(NULLIF(COALESCE(fp.time > ftv.time,TRUE),FALSE)) AS unread
+                       ,count(NULLIF(COALESCE(fp.fpid::BOOLEAN,FALSE)
+                               AND COALESCE(fp.time > ftv.time,TRUE),FALSE)) AS unread
                        ,date_trunc('seconds',max(fp.time)::timestamp) as last_post
                        FROM forum_categories
                                JOIN forum_boards fb USING (fcid)
-                               JOIN forum_threads ft USING (fbid)
-                               JOIN forum_posts fp USING (ftid)
+                               LEFT OUTER JOIN forum_threads ft USING (fbid)
+                               LEFT OUTER JOIN forum_posts fp USING (ftid)
                                LEFT OUTER JOIN (SELECT * FROM forum_thread_visits WHERE uid = $1) ftv USING (ftid)
                        WHERE EXISTS (SELECT fbid FROM forum_access WHERE fbid = fb.fbid AND gid IN (SELECT groups($1)))
                        GROUP BY fcid,category,fb.fbid, fb.board