use CGI qw/:standard/;
use ND::Web::Include;
-$ND::PAGES{check} = {parse => \&parse, process => \&process, render=> \&render};
+our @ISA = qw/ND::Web::XMLPage/;
+
+$ND::Web::Page::PAGES{check} = __PACKAGE__;
sub parse {
- my ($uri) = @_;
+ my $self = shift;
#TODO: Improved apache conf needed
- #if ($uri =~ m{^/.*/((\d+)(?: |:)(\d+)(?:(?: |:)(\d+))?(?: |:(\d+))?)$}){
- # param('coords',$1);
- #}
-}
-
-sub process {
-
+ if ($self->{URI} =~ m{^/.*/((\d+)(?: |:)(\d+)(?:(?: |:)(\d+))?(?: |:(\d+))?)$}){
+ param('coords',$1);
+ }
}
-sub render {
- my ($DBH,$BODY) = @_;
- $ND::TEMPLATE->param(TITLE => 'Check planets and galaxies');
+sub render_body {
+ my $self = shift;
+ my ($BODY) = @_;
+ $self->{TITLE} = 'Check planets and galaxies';
+ my $DBH = $self->{DBH};
- $BODY->param(isBC => isMember() && (isOfficer() || isBC));
+ return $self->noAccess unless $self->{ATTACKER};
- return $ND::NOACCESS unless $ND::ATTACKER;
+ $BODY->param(isBC => $self->isMember && ($self->isOfficer || $self->isBC));
my ($x,$y,$z);
if (param('coords') =~ /(\d+)(?: |:)(\d+)(?:(?: |:)(\d+))?(?: |:(\d+))?/){
$x = $1;
$y = $2;
$z = $3;
- $BODY->param(Coords => param('coords'));
+ $BODY->param(Coords => "$x:$y".(defined $z ? ":$z" : ''));
}else{
$ND::ERROR .= p b q{Couldn't parse coords};
return $BODY;
}
- if (isMember() && param('cmd') eq 'arbiter'){
+ if ($self->isMember && param('cmd') eq 'arbiter'){
my $query = $DBH->prepare(q{SELECT count(*) AS friendlies FROM current_planet_stats WHERE x = ? AND y = ?
AND (planet_status IN ('Friendly','NAP') OR relationship IN ('Friendly','NAP'))});
my ($count) = $DBH->selectrow_array($query,undef,$x,$y);
my $extra_columns = '';
$where = 'AND z = ?' if defined $z;
- if (isMember() && isOfficer()){
+ if ($self->isMember && $self->isOfficer){
$extra_columns = ",planet_status,hit_us, alliance,relationship,nick";
- }elsif (isMember() && isBC()){
+ }elsif ($self->isMember && $self->isBC){
$extra_columns = ", planet_status,hit_us, alliance,relationship";
}
$query->execute($x,$y,$z);
}else{
$query->execute($x,$y);
- if (isMember() && (isBC() || isOfficer()) && !isHC()){
+ if ($self->isMember && ($self->isBC || $self->isOfficer) && !$self->isHC){
log_message $ND::UID,"BC browsing $x:$y";
}
}
my %planet = (Coords => $coords, Planet => $planet, Race => $race, Size => "$size ($sizerank)"
, Score => "$score ($scorerank)", Value => "$value ($valuerank)", XP => "$xp ($xprank)"
, FleetValue => "$fleetvalue ($resvalue)");
- if (isMember() && (isOfficer() || isBC())){
+ if ($self->isMember && ($self->isOfficer || $self->isBC)){
$planet{HitUs} = $hit_us;
$planet{Alliance} = "$alliance ($relationship)";
$planet{Nick} = "$nick ($planet_status)";
$planet{PlanetStatus} = $planet_status;
$planet{Relationship} = $relationship;
- $planet{isBC} = 1;
- if ($z && $alliance eq 'NewDawn' && not (isHC || isOfficer)){
- log_message $ND::UID,"BC browsing ND planet $coords tick $ND::TICK";
+ #$planet{isBC} = 1;
+ if ($z && $alliance eq 'NewDawn' && not ($self->isHC || $self->isOfficer)){
+ log_message $ND::UID,"BC browsing ND planet $coords tick $self->{TICK}";
}
}
$i++;
$scan .= q{</table>};
push @scans, {Scan => $scan};
- $query = $DBH->prepare(q{SELECT x,y,z,tick FROM planet_stats WHERE id = ?});
+ $query = $DBH->prepare(q{SELECT x,y,z,tick FROM planet_stats WHERE id = ? ORDER BY tick ASC});
$scan = q{
<p>Previous Coords</p>
<table><tr><th>Tick</th><th>Value</th><th>Difference</th></tr>};
my $scan_id = $scans{$type}->[0];
my $tick = $scans{$type}->[1];
my $scan = $scans{$type}->[2];
- if ($ND::TICK - $tick > 10){
+ if ($self->{TICK} - $tick > 10){
$scan =~ s{<table( cellpadding="\d+")?>}{<table$1 class="old">};
}
push @scans,{Scan => qq{