X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND%2FWeb%2FPages%2FPoints.pm;h=04c17dd4fa8f9f0cd3b322f21a7419a27d87164f;hb=c7030fde80686d05805d02f3586ec23224e4c6e5;hp=b17e4b1bba6978a39f9eb0410f6148b776206c19;hpb=5e8e40894860b7bab39783a43c32d98d080801c9;p=ndwebbie.git diff --git a/ND/Web/Pages/Points.pm b/ND/Web/Pages/Points.pm index b17e4b1..04c17dd 100644 --- a/ND/Web/Pages/Points.pm +++ b/ND/Web/Pages/Points.pm @@ -23,9 +23,9 @@ use warnings FATAL => 'all'; use CGI qw/:standard/; use ND::Web::Include; -our @ISA = qw/ND::Web::XMLPage/; +use base qw/ND::Web::XMLPage/; -$ND::Web::Page::PAGES{points} = 'ND::Web::Pages::Points'; +$ND::Web::Page::PAGES{points} = __PACKAGE__; sub render_body { @@ -37,7 +37,7 @@ sub render_body { return $self->noAccess unless $self->isMember; my $type = "total"; - if (defined param('type') && param('type') =~ /^(defense|attack|total|humor|scan|rank)$/){ + if (defined param('type') && param('type') =~ /^(defense|attack|total|humor|scan|rank|raid)$/){ $type = $1; } $type .= '_points' unless ($type eq 'rank'); @@ -48,14 +48,19 @@ sub render_body { my $limit = 'LIMIT 10'; $limit = '' if $self->isHC; - my $query = $DBH->prepare("SELECT username,defense_points,attack_points,scan_points,humor_points, (attack_points+defense_points+scan_points/20) as total_points, rank FROM users WHERE uid IN (SELECT uid FROM groupmembers WHERE gid = 2) ORDER BY $type $order $limit"); + my $query = $DBH->prepare(qq{SELECT username,defense_points,attack_points,scan_points,humor_points + ,(attack_points+defense_points+scan_points/20) as total_points, rank, count(NULLIF(rc.launched,FALSE)) AS raid_points + FROM users u LEFT OUTER JOIN raid_claims rc USING (uid) + WHERE uid IN (SELECT uid FROM groupmembers WHERE gid = 2) + GROUP BY username,defense_points,attack_points,scan_points,humor_points,rank + ORDER BY $type $order $limit}); $query->execute; my @members; my $i = 0; - while (my ($username,$defense,$attack,$scan,$humor,$total,$rank) = $query->fetchrow){ + while (my ($username,$defense,$attack,$scan,$humor,$total,$rank,$raid) = $query->fetchrow){ $i++; - push @members,{Username => $username, Defense => $defense, Attack => $attack + push @members,{Username => $username, Defense => $defense, Attack => $attack, Raid => $raid , Scan => $scan, Humor => $humor, Total => $total, Rank => $rank, ODD => $i % 2}; } $BODY->param(Members => \@members);