X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND.pm;h=997914241086d75eb46541e06dbd2e8b20121356;hb=b742ff2926ed9ab8be3519e3d0f26f9cf3b421e4;hp=c3391f2bcc2ddf74781cfd62e2de3a4ca49f488c;hpb=2d7464077ae805a1923bb4e2024afeb769f30e02;p=ndwebbie.git diff --git a/ND.pm b/ND.pm index c3391f2..9979142 100755 --- a/ND.pm +++ b/ND.pm @@ -30,7 +30,9 @@ use ND::Include; use Tie::File; use Fcntl 'O_RDONLY'; use strict; -use warnings FATAL => 'all'; +use warnings; + +$SIG{__WARN__} = sub {$ND::ERROR .= p $_[0]}; chdir '/var/www/ndawn/code'; our %PAGES; @@ -39,7 +41,7 @@ our $NOACCESS = HTML::Template->new(filename => 'templates/NoAccess.tmpl', globa sub handler { local $ND::r = shift; local $ND::req = Apache2::Request->new($ND::r, POST_MAX => "1M"); - local $ND::DBH; + local $ND::DBH = ND::DB::DB(); local $ND::USER; local $ND::UID; local $ND::PLANET; @@ -48,6 +50,7 @@ sub handler { local $ND::TICK; local %ND::GROUPS; local $ND::ERROR; + local $ND::USETEMPLATE = 1; local $ND::PAGE = $ND::req->param('page'); if ($ENV{'SCRIPT_NAME'} =~ /(\w+)(\.(pl|php|pm))?$/){ @@ -57,13 +60,17 @@ sub handler { $PAGES{$ND::PAGE}->{parse}->($ENV{REQUEST_URI}); - page($ND::PAGE); + if ($ND::USETEMPLATE){ + page($ND::DBH,$ND::PAGE); + }else{ + $PAGES{$ND::PAGE}->{render}->($ND::DBH,$ENV{REQUEST_URI}); + } + return Apache2::Const::OK; } sub page { - my ($PAGE) = @_; - our $DBH = ND::DB::DB(); + my ($DBH,$PAGE) = @_; $DBH->do(q{SET timezone = 'GMT'}); our $ERROR; @@ -101,7 +108,7 @@ sub page { $ND::BODY = HTML::Template->new(filename => "templates/$ND::PAGE.xml.tmpl", cache => 1); }else{ $ND::BODY = HTML::Template->new(filename => "templates/$ND::PAGE.tmpl", global_vars => 1, cache => 1); - $ND::BODY->param(PAGE => '/'.$ND::PAGE); + $ND::BODY->param(PAGE => $ND::PAGE); } $ND::BODY = $PAGES{$PAGE}->{render}->($DBH,$ND::BODY); @@ -111,9 +118,13 @@ sub page { $fleetupdate = 0 unless defined $fleetupdate; - my ($unread,$lastv) = $DBH->selectrow_array(unread_query,undef,$UID) or $ERROR .= p($DBH->errstr); + my ($last_forum_visit) = $DBH->selectrow_array(q{SELECT last_forum_visit FROM users WHERE uid = $1} + ,undef,$UID) or $ERROR .= p($DBH->errstr); + my ($unread,$newposts) = $DBH->selectrow_array(unread_query,undef,$UID,$last_forum_visit) + or $ERROR .= p($DBH->errstr); $TEMPLATE->param(UnreadPosts => $unread); + $TEMPLATE->param(NewPosts => $newposts); $TEMPLATE->param(Tick => $TICK); $TEMPLATE->param(isMember => (($TICK - $fleetupdate < 24) || isScanner()) && $PLANET && isMember()); $TEMPLATE->param(isHC => isHC()); @@ -125,6 +136,8 @@ sub page { $ND::TEMPLATE->param(Targets => listTargets()); } $TEMPLATE->param(Coords => param('coords') ? param('coords') : '1:1:1'); + my ($css) = $DBH->selectrow_array(q{SELECT css FROM users WHERE uid = $1},undef,$ND::UID); + $TEMPLATE->param(CSS => $css); } $TEMPLATE->param(Error => $ERROR);