From: CMDR furrycat Date: Wed, 16 Mar 2016 08:13:52 +0000 (-0400) Subject: Show different columns in dashes. X-Git-Url: http://git.furryclan.net/?a=commitdiff_plain;h=59a74a3bcbdd0e06bc946a7d3965be2c1d9a6216;p=furrycat%2Frace-o-matic.git Show different columns in dashes. --- diff --git a/lib/race.php b/lib/race.php index 9d86f1c..7dbe4a8 100644 --- a/lib/race.php +++ b/lib/race.php @@ -126,15 +126,14 @@ } } - 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); @@ -226,7 +225,7 @@ 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 { @@ -245,21 +244,27 @@ $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'; @@ -822,16 +827,24 @@ $filtered_entries = array(); foreach (array('html', 'bbcode') as $type) { echo "
\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; @@ -925,10 +938,10 @@ 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 "
\n"; } echo "\n";