X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND.pm;h=82a477ab5a60e17c064b9b829fd399d92bb22163;hb=bea9ca01144b2ecfdd1fb0f7efc7b21f170da8c3;hp=25a798a7bbfded719463af8055a53f2f0ce11667;hpb=accb7993672db2b43ee7a6feb1a0dcde4fe39e9b;p=ndwebbie.git diff --git a/ND.pm b/ND.pm index 25a798a..82a477a 100755 --- a/ND.pm +++ b/ND.pm @@ -24,7 +24,7 @@ use HTML::Template; use DBI; use DBD::Pg qw(:pg_types); use Apache2::Request; -use ND::Include; +use ND::Web::Include; use ND::DB; use Tie::File; use Fcntl 'O_RDONLY'; @@ -81,9 +81,6 @@ sub page { $ATTACKER = 1 if $attack; } - - our $LOG = $DBH->prepare('INSERT INTO log (uid,text) VALUES(?,?)'); - tie my @pages, 'Tie::File', "/var/www/ndawn/code/pages", mode => O_RDONLY, memory => 0 or die $!; $ND::PAGE = 'main' unless grep { /^$ND::PAGE$/ } @pages; @@ -113,9 +110,13 @@ sub page { $fleetupdate = 0 unless defined $fleetupdate; - my ($unread) = $DBH->selectrow_array(q{SELECT count(NULLIF(COALESCE(fp.time > ftv.time,TRUE),FALSE)) AS unread -FROM forum_threads ft JOIN forum_posts fp USING (ftid) LEFT OUTER JOIN - (SELECT * FROM forum_thread_visits WHERE uid = $1) ftv ON ftv.ftid = ft.ftid + my ($unread) = $DBH->selectrow_array(q{ + SELECT count(*) AS unread +FROM forum_boards fb NATURAL JOIN forum_threads ft + JOIN forum_posts fp USING (ftid) LEFT OUTER JOIN + (SELECT * FROM forum_thread_visits WHERE uid = $1) ftv ON ftv.ftid = ft.ftid +WHERE (ftv.time IS NULL OR fp.time > ftv.time) AND fbid > 0 AND + fbid IN (SELECT fbid FROM forum_access WHERE gid IN (SELECT groups($1))) },undef,$UID) or $ERROR .= p($DBH->errstr); $TEMPLATE->param(UnreadPosts => $unread);