use ND::Include;
use CGI qw/:standard/;
-$ND::PAGES{intel} = {parse => \&parse, process => \&process, render=> \&render};
+use base qw/ND::Web::XMLPage/;
+
+$ND::Web::Page::PAGES{intel} = __PACKAGE__;
sub parse {
- my ($uri) = @_;
- if ($uri =~ m{^/.*/(\w+)$}){
- param('list',$1);
+ my $self = shift;
+ if ($self->{URI} =~ m{^/.*/((\d+)(?: |:)(\d+)(?: |:)(\d+))$}){
+ param('coords',$1);
}
}
-sub process {
-
-}
+sub render_body {
+ my $self = shift;
+ my ($BODY) = @_;
+ $self->{TITLE} = 'Intel';
+ my $DBH = $self->{DBH};
-sub render {
- my ($DBH,$BODY) = @_;
+ return $self->noAccess unless $self->isIntel || $self->isHC;
my $error;
- $ND::TEMPLATE->param(TITLE => 'Intel');
-
- return $ND::NOACCESS unless isIntel() || isHC();
-
my $planet;
if (defined param('coords') && param('coords') =~ /^(\d+)(?: |:)(\d+)(?: |:)(\d+)$/){
my $query = $DBH->prepare(q{SELECT x,y,z,coords(x,y,z),id, nick, alliance,alliance_id, planet_status,channel,ftid FROM current_planet_stats
if ($planet){
$BODY->param(Coords => $planet->{coords});
$BODY->param(Planet => $planet->{id});
- $BODY->param(Nick => $planet->{nick});
+ $BODY->param(Nick => escapeHTML($planet->{nick}));
$BODY->param(Channel => $planet->{channel});
my @status;
for my $status (" ","Friendly", "NAP", "Hostile"){
push @intellists,{Message => q{Intel where alliances doesn't match}, Intel => \@intel, Origin => 1, Target => 1};
$BODY->param(IntelLIsts => \@intellists);
}
- my $query = $DBH->prepare(q{SELECT i.id, u.username, i.message, report_date FROM intel_messages i
- JOIN users u ON u.uid = i.uid
- WHERE NOT handled ORDER BY report_date});
- $query->execute;
- my @messages;
- while (my $message = $query->fetchrow_hashref){
- $message->{message} = parseMarkup($message->{message});
- push @messages,$message;
- }
- #$BODY->param(IntelMessages => \@messages);
$BODY->param(Error => $error);
return $BODY;
}