my %ratings_stddev = ();
my @matches = ();
-sub sanitize {
- return HTML::Entities::encode_entities(shift);
-}
-
sub color {
my $x = shift;
return int(255.0 * ($x ** (1.80)));
while (my $ref = $q->fetchrow_hashref) {
my $id = $ref->{'id'};
- $players{$id} = sanitize(Encode::decode_utf8($ref->{'navn'}));
+ $players{$id} = Encode::decode_utf8($ref->{'navn'});
$ratings{$id} = $ref->{'rating'};
$ratings_stddev{$id} = $ref->{'rating_stddev'};
}
push @player_ranks, {
'td/style' => "background-color: rgb($r, $g, $b)",
'a' => sprintf("%.1f%%", $pn * 100.0),
- 'a/href' => "javascript:showScenario('$table_id', '/$locale/?divisjon=$division;avdeling=$subdivision;spiller=$pnum;posisjon=$i"
+ 'a/href' => "javascript:showScenario('$table_id', '/$locale/?divisjon=$division;avdeling=$subdivision;spiller=$pnum;posisjon=$i')"
};
}
}
my $cov = get_covariance_matrix($dbh, keys %players);
if (defined($match_player) && defined($match_position)) {
- print_header($cgi, 'WLoH-plasseringsannsynlighetsberegning');
my $tmpnam = write_parms_to_file($aux_parms, $match_stddev, \%ratings, $cov);
--$match_player;
while (<MCCALC>) {
/(\d+) (\d+) (-?\d+)/ or next;
chomp;
- push @scenario, [ $1, $2, $3 ];
+ push @scenario, {
+ 'player-1' => $players{$1},
+ 'player-2' => $players{$2},
+ 'result' => sprintf("%+d", $3),
+ };
}
close MCCALC;
unlink $tmpnam;
my $player_name = $players{$sorted_players[$match_player]};
if (scalar @scenario == 0) {
- printf " <p>Fant ingen måte <strong>%s</strong> kan ende på <strong>%d.</strong> plass på.</p>\n",
- $player_name, ($match_position + 1);
+ print CGI->header(-type=>'text/html; charset=utf-8', -expires=>'+5m');
+ wloh_common::process_template('scenario-not-found.xml', {
+ '#nick' => $player_name,
+ '#rank' => sprintf("%d.", $match_position + 1)
+ });
} else {
- printf " <p>Scenario der <strong>%s</strong> ender på <strong>%d.</strong> plass:</p>\n",
- $player_name, ($match_position + 1);
- print " <ul>\n";
- for my $m (@scenario) {
- printf " <li>%s – %s: %+d</li>\n", $players{$m->[0]}, $players{$m->[1]}, $m->[2];
- }
- print " </ul>\n";
+ print CGI->header(-type=>'text/html; charset=utf-8', -expires=>'+5m');
+ wloh_common::process_template('scenario.xml', {
+ '#nick' => $player_name,
+ '#rank' => sprintf("%d.", $match_position + 1),
+ '#results' => \@scenario
+ });
}
- print_footer();
} else {
POSIX::setlocale(&POSIX::LC_ALL, 'nb_NO.UTF-8');