else return $n . array('th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th')[$n % 10];
}
- function find_prizewinners($race, $entries) {
+ function find_prizewinners($race, $entries, $prize_filter = null) {
$competitors = array();
$prizes = array();
$last_sort_method = null;
foreach ($race->getPrizeKeys() as $p) {
+ if (! is_null($prize_filter) && ! ($race->PrizeValue($p) & $prize_filter)) continue;
$sort_method = $race->PrizeSortMethod($p);
if ($sort_method != $last_sort_method) uasort($entries, "Entry::$sort_method");
$last_sort_method = $sort_method;
$eq->filterById($filtered_entry_ids);
$entry_objects = $eq->find();
foreach ($entry_objects as $entry) $entries[] = $entry;
- $prizewinners = find_prizewinners($race, $entries);
+ $prizewinners = find_prizewinners($race, $entries, $prize_filter);
uasort($entries, "Entry::StandardSort");
$ranked_entries = array();
$competitor_entries = array();
echo "</pre></div>\n";
}
- function build_args($params, $key, $value, $description) {
+ function build_args($params, $key, $value, $description, $class = null) {
$uri = preg_replace('/&args=[^&]+/', '', $_SERVER['REQUEST_URI']);
- $uri = " <a href=\"$uri&args=";
+ if (! is_null($class)) $class = " class=\"$class\"";
+ $uri = " <a$class href=\"$uri&args=";
$args = array();
foreach ($params as $k => $v) {
if ($k == $key) $args[] = "$key:$value";
if (! in_array($sort, array_keys($methods))) $sort = 'distance';
$sort_method = $methods[$sort];
$format = (array_key_exists("format", $params)) ? $params["format"] : "ships";
+ $prize_filter = (array_key_exists("prizes", $params)) ? (int) $params["prizes"] : null;
$rq = new RaceQuery;
if ($action) $rq->filterById($action);
$entries[] = $entry;
$entries_by_id[$entry->getId()] = $entry;
}
- $prizewinners = find_prizewinners($race, $entries);
+ $prizewinners = find_prizewinners($race, $entries, $prize_filter);
uasort($entries, "Entry::$sort_method");
}
else {
continue;
}
+ echo "<div class=\"classification\">\n";
echo "<h3>$name</h3>\n";
+
+ /* Prize filtering. */
if ($race->getPrizes()) {
- $prizes = array();
- foreach ($race->getPrizeKeys() as $p) $prizes[] = $race->PrizeDescription($p);
- echo "<p>Prizes for " . implode(", ", $prizes) . ".</p>\n";
+ $uri_list = array();
+ foreach ($race->getPrizeKeys() as $p) {
+ $Prize = ucfirst($race->PrizeDescription($p));
+ $v = $race->PrizeValue($p);
+ if (is_null($prize_filter) || ($prize_filter & $v)) $uri = build_args($params, "prizes", (is_null($prize_filter)) ? $race->getPrizes() & ~$v : $prize_filter & ~$v, $Prize, "disabled");
+ else $uri = build_args($params, "prizes", $prize_filter | $v, $Prize);
+ $uri_list[] = $uri;
+ }
+ echo "<p class=\"header\">Show prizes: " . implode(" // ", $uri_list) . ".</p>\n";
}
- echo "<div class=\"classification\">\n";
/* Sort options. */
$uri_list = array();
body { font-family: 'Sintony'; font-weight: 400; }
#header { clear: both; overflow: auto; vertical-align: center; }
#header { font-weight: 500; }
-#header a { text-decoration: none; }
+#header a { text-decoration: none; color: #005195; }
+.header a { text-decoration: none; }
+a { color: #005195; }
+a:visited { color: inherit; }
+a.disabled { text-decoration: line-through; color: #ff6418; }
#header, .header, h1,h2,h3,h4 { font-family: 'Orbitron'; }
#header strong { font-weight: 700; }
#laps { overflow-x: auto; }