}
}
- function entry_footer($race, $type) {
+ function entry_footer($race, $type, $one_entry) {
$keys = array();
foreach ($race->getPrizeKeys() as $p) {
$keys[$p] = ucfirst($race->PrizeDescription($p));
}
- $rows = array(
- 'orange' => "Competitor's best non-prizewinning entry",
- 'blue' => "Competitor's other entries"
- );
+ $rows = array();
+ $rows['orange'] = count($keys) ? "Competitor's best non-prizewinning entry" : "Competitor's best entry";
+ if (! $one_entry) $rows['blue'] = "Competitor's other entries";
$endorsements = Entry::EndorsementKeys();
asort($endorsements);
return (array_key_exists($condition, $formats) && $formats[$condition][0] >= $formats[$format][0]);
}
- function show_entry($sort, $format, $entry, $allotted_time, $position, $rank, $ship_rank, $row, $type, $prize_name, $blue_count = 0, $white_count = 0) {
+ function show_entry($sort, $format, $entry, $allotted_time, $has_joker, $has_prizes, $position, $rank, $ship_rank, $row, $type, $prize_name, $blue_count = 0, $white_count = 0) {
$fields = array();
if ($sort == "start_time") $fields[] = elite_time($entry->getStartTime());
else {
$hull = $ship->getHull();
$fields[] = array($ship->getName(), $ship->getLink());
$fields[] = array($hull->getName(), $hull->getLink());
- $fields[] = array(format_distance($entry->getTotalDistance()), $entry->getLink($entry->getTotalDistance()));
- $fields[] = format_time($entry->getPenaltyTime());
- $fields[] = format_distance($entry->getLapDistance());
- $fields[] = $entry->getCompleteLaps();
- if ($sort == 'penalty_distance') $fields[] = format_distance($entry->getTotalDistance() + (float) $entry->getPenaltyTime() / 2);
- $bonus_time = $entry->getBonusTime();
- $fields[] = ($allotted_time > 0) ? format_time($allotted_time + $bonus_time) : '';
- $fields[] = ($bonus_time > 0) ? format_time($bonus_time) : '';
+ if ($allotted_time) $fields[] = array(format_distance($entry->getTotalDistance()), $entry->getLink($entry->getTotalDistance()));
+ if ($allotted_time || $has_joker) $fields[] = format_time($entry->getPenaltyTime());
+ if ($allotted_time) {
+ $fields[] = format_distance($entry->getLapDistance());
+ $fields[] = $entry->getCompleteLaps();
+ if ($sort == 'penalty_distance') $fields[] = format_distance($entry->getTotalDistance() + (float) $entry->getPenaltyTime() / 2);
+ }
+ if ($allotted_time || $has_joker) {
+ $bonus_time = $entry->getBonusTime();
+ $fields[] = ($allotted_time > 0) ? format_time($allotted_time + $bonus_time) : '';
+ $fields[] = ($bonus_time > 0) ? format_time($bonus_time) : '';
+ }
$fields[] = format_time($entry->getRacedTime());
- $fields[] = ($allotted_time > 0) ? format_time($entry->getTotalTime()) : '';
- $fields[] = format_speed($entry->getBestSpeed());
- $fields[] = format_speed($entry->getAverageSpeed());
- $fields[] = format_time($entry->getFastestLap());
- $fields[] = format_time($entry->getAverageLap());
- $fields[] = (is_null($prize_name)) ? '' : ucfirst(Race::PrizeDescription($prize_name));
+ if ($allotted_time || $has_joker) $fields[] = ($allotted_time > 0) ? format_time($entry->getTotalTime()) : '';
+ if ($allotted_time) {
+ $fields[] = format_speed($entry->getBestSpeed());
+ $fields[] = format_speed($entry->getAverageSpeed());
+ $fields[] = format_time($entry->getFastestLap());
+ $fields[] = format_time($entry->getAverageLap());
+ }
+ if ($has_prizes) $fields[] = (is_null($prize_name)) ? '' : ucfirst(Race::PrizeDescription($prize_name));
$formatting = array();
if ($entry->usedDockingComputer()) $formatting[] = 'i';
$filtered_entries = array();
foreach (array('html', 'bbcode') as $type) {
echo "<div class=\"$type\">\n";
- $blue_fields = array('E', 'CMDR name', 'Forum name', 'Ship name', 'Ship type', 'Distance', 'Penalty');
+ $blue_fields = array('E', 'CMDR name', 'Forum name', 'Ship name', 'Ship type');
+ if ($allotted_time) $blue_fields = array_merge($blue_fields, array('Distance', 'Penalty'));
if ($sort == "start_time") array_unshift($blue_fields, 'Start time');
else {
if ($format == "full") array_unshift($blue_fields, 'P');
array_unshift($blue_fields, 'R', 'S');
}
- $white_fields = array('Lap distance', 'Laps');
- if ($sort == 'penalty_distance') $white_fields[] = 'Total distance';
- $white_fields = array_merge($white_fields, array('Allotted', 'Bonus', 'Raced', 'Total'));
- $orange_fields = array('Best speed', 'Average speed', 'Fastest lap', 'Average lap', 'Award');
+ $white_fields = array();
+ $orange_fields = array();
+ if ($allotted_time) {
+ $white_fields = array_merge($white_fields, array('Lap distance', 'Laps'));
+ if ($sort == 'penalty_distance') $white_fields[] = 'Total distance';
+ $white_fields = array_merge($white_fields, array('Allotted', 'Bonus'));
+ $orange_fields = array_merge($orange_fields, array('Best speed', 'Average speed', 'Fastest lap', 'Average lap'));
+ }
+ $white_fields[] = 'Raced';
+ if ($allotted_time) $white_fields[] = 'Total';
+ if ($race->getPrizes()) $orange_fields[] = 'Award';
entry_header($sort, $format, $type, $blue_fields, $white_fields, $orange_fields);
$n = $position = $rank = 1;
$shown = 0;
if ($prizewinners_only) continue;
if (! is_null($limit) && ++$shown > $limit) continue;
}
- show_entry($sort, $format, $entry, $allotted_time, $p, $r, $s, $n++, $type, $prize_name, count($blue_fields), count($white_fields));
+ show_entry($sort, $format, $entry, $allotted_time, null, $race->getPrizes(), $p, $r, $s, $n++, $type, $prize_name, count($blue_fields), count($white_fields));
if ($filter) $filtered_entries[] = $entry;
}
- entry_footer($race, $type);
+ entry_footer($race, $type, filtered("competitors", $format, $formats));
echo "</div>\n";
}
echo "</div>\n";