X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=top100.pl;fp=top100.pl;h=27219e0e570e995057c7b6ec795433c59f3db7c0;hb=64df4f268381089651b2067a1c09d22004c4f04b;hp=0000000000000000000000000000000000000000;hpb=1b53b46299c5a8a8a89b1c7d916e1234d9d064a8;p=ndwebbie.git diff --git a/top100.pl b/top100.pl new file mode 100644 index 0000000..27219e0 --- /dev/null +++ b/top100.pl @@ -0,0 +1,74 @@ +#************************************************************************** +# Copyright (C) 2006 by Michael Andreen * +# * +# This program is free software; you can redistribute it and/or modify * +# it under the terms of the GNU General Public License as published by * +# the Free Software Foundation; either version 2 of the License, or * +# (at your option) any later version. * +# * +# This program is distributed in the hope that it will be useful, * +# but WITHOUT ANY WARRANTY; without even the implied warranty of * +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# GNU General Public License for more details. * +# * +# You should have received a copy of the GNU General Public License * +# along with this program; if not, write to the * +# Free Software Foundation, Inc., * +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * +#**************************************************************************/ + +use strict; + +$ND::TEMPLATE->param(TITLE => 'Top100 '); + +our $BODY; +our $DBH; +our $LOG; + +$BODY->param(isHC => isHC()); + + +die "You don't have access" unless isMember(); + +my $offset = 0; +if (param('offset') =~ /^(\d+)$/){ + $offset = $1; +} +$BODY->param(Offset => $offset); +$BODY->param(PrevOffset => $offset - 100); +$BODY->param(NextOffset => $offset + 100); + +my $order = 'scorerank'; +if (param('order') =~ /^(scorerank|sizerank|valuerank|xprank|hit_us)$/){ + $order = $1; +} +$BODY->param(Order => $order); +$order .= ' DESC' if ($order eq 'hit_us'); + + +my $extra_columns = ''; +if (isHC()){ + $extra_columns = ",planet_status,hit_us, alliance,relationship,nick"; +} +my $query = $DBH->prepare(qq{SELECT id,coords(x,y,z), ruler, planet,race, + size, score, value, xp, sizerank, scorerank, valuerank, xprank + $extra_columns FROM current_planet_stats ORDER BY $order LIMIT 100 OFFSET $offset}); +$query->execute; +my @planets; +while (my ($id,$coords,$ruler,$planet,$race,$size,$score,$value,$xp,$sizerank,$scorerank,$valuerank,$xprank + ,$planet_status,$hit_us,$alliance,$relationship,$nick) = $query->fetchrow){ + my %planet = (Coords => $coords, Planet => "$ruler OF $planet", Race => $race, Size => "$size ($sizerank)" + , Score => "$score ($scorerank)", Value => "$value ($valuerank)", XP => "$xp ($xprank)"); + if (isHC){ + $planet{HitUs} = $hit_us; + $planet{Alliance} = "$alliance ($relationship)"; + $planet{Nick} = "$nick ($planet_status)"; + $planet{PlanetStatus} = $planet_status; + $planet{Relationship} = $relationship; + $planet{isHC} = 1; + } + push @planets,\%planet; +} +$BODY->param(Planets => \@planets); + +1;