X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND%2FWeb%2FPages%2FForum.pm;h=55cbe9615481a4ca5ffe35c84ba6fb47e80bd5c7;hb=103c3c2ed9ccd4f5ef95a1f8ea7f700a7a38e2cd;hp=81943a9707d7b2e2e47c06384b3591a162810fda;hpb=c5cc1151b5a4f1e52eb577a78df1f79dfdc193db;p=ndwebbie.git diff --git a/ND/Web/Pages/Forum.pm b/ND/Web/Pages/Forum.pm index 81943a9..55cbe96 100644 --- a/ND/Web/Pages/Forum.pm +++ b/ND/Web/Pages/Forum.pm @@ -131,13 +131,15 @@ sub render_body { GROUP BY fb.fbid,fb.board ORDER BY fb.fbid }); - my $threads = $DBH->prepare(q{SELECT ft.ftid AS id,ft.subject, + my $threads = $DBH->prepare(q{SELECT ft.ftid AS id,u.username,ft.subject, count(NULLIF(COALESCE(fp.time > ftv.time,TRUE),FALSE)) AS unread,count(fp.fpid) AS posts, date_trunc('seconds',max(fp.time)::timestamp) as last_post, min(fp.time)::date as posting_date, ft.sticky - FROM forum_threads ft JOIN forum_posts fp USING (ftid) LEFT OUTER JOIN (SELECT * FROM forum_thread_visits WHERE uid = $2) ftv ON ftv.ftid = ft.ftid + FROM forum_threads ft JOIN forum_posts fp USING (ftid) + JOIN users u ON u.uid = ft.uid + LEFT OUTER JOIN (SELECT * FROM forum_thread_visits WHERE uid = $2) ftv ON ftv.ftid = ft.ftid WHERE ft.fbid = $1 - GROUP BY ft.ftid, ft.subject,ft.sticky + GROUP BY ft.ftid, ft.subject,ft.sticky,u.username HAVING count(NULLIF(COALESCE(fp.time > ftv.time,TRUE),FALSE)) >= $3 ORDER BY sticky DESC,last_post DESC}); @@ -164,6 +166,7 @@ sub render_body { $boards->execute($category->{id},$ND::UID) or $ND::ERROR .= p($DBH->errstr); my @boards; while (my $board = $boards->fetchrow_hashref){ + next if $board->{id} < 0; $threads->execute($board->{id},$ND::UID,1) or $ND::ERROR .= p($DBH->errstr); my $i = 0; my @threads; @@ -224,6 +227,7 @@ sub render_body { ,undef,$board->{fcid}) or $ND::ERROR .= p($DBH->errstr); $BODY->param(Category => $category); + }elsif($self->{URI} =~ m{^/.*/search/(.*)}){ #List threads in this board }else{ #List boards $BODY->param(Overview => 1); $categories->execute or $ND::ERROR .= p($DBH->errstr);