# HG changeset patch # User Matti Hamalainen # Date 1394672348 -7200 # Node ID 766bc2221e0b6592031487272d4acdf79d14a42c # Parent cd121447a2e1aa9fffb627a2d94ebf6f4ea18bb8# Parent 3428ff77ff47a26b2897c4a92625e91530619241 Merged. diff -r cd121447a2e1 -r 766bc2221e0b info/index.php --- a/info/index.php Thu Mar 13 02:49:15 2014 +0200 +++ b/info/index.php Thu Mar 13 02:59:08 2014 +0200 @@ -20,7 +20,10 @@ ); $seasonData = array( - "spring", "summer", "autumn", "winter", + "spring" => 0x01, + "summer" => 0x02, + "autumn" => 0x04, + "winter" => 0x08, ); @@ -46,31 +49,53 @@ return $rkey; } - return FALSE; + return -1; +} + + +function tlGetSeasonFromName($name, $fail = FALSE) +{ + global $seasonData; + foreach ($seasonData as $rkey => $rval) + { + if ($rkey == $name) + return $rval; + } + + if ($fail) + die("Invalid season name '".$name."'.\n"); + else + return 0; } -function tlGetSeasonFromName($name) +function tlGetSeasonsFromFlags($val) { + $res = array(); global $seasonData; - if (($season = array_search($name, $seasonData)) === FALSE) - die("Invalid season name '".$name."'.\n"); - - return $season; + foreach ($seasonData as $rkey => $rval) + { + if ($val & $rval) + $res[] = $rkey; + } + + return $res; } -$fh = @fopen("herbs.csv", "r"); +// +// Parse data from CSV input +// $herbData = array(); -if ($fh !== FALSE) +if (($fh = @fopen("herbs.csv", "r")) !== FALSE) { while ($data = fgetcsv($fh, 1000, ";")) { - $sdata = array(); + $sdata = 0; foreach (preg_split("/, */", $data[1]) as $value) { if ($value != "") - $sdata[] = tlGetSeasonFromName($value); + $sdata |= tlGetSeasonFromName($value, TRUE); } $rdata = array(); @@ -110,25 +135,41 @@ Information = 0) + $trfilter = $data; +} + + +if (isset($_GET["season"])) +{ + $data = tlGetSeasonFromName(strtolower(trim($_GET["season"]))); + if ($data > 0) + $sefilter = $data; } $row = 0; foreach ($herbData as $data) { - if ($filter >= 0 && array_search($filter, $data["terrains"]) === FALSE) + if ($trfilter !== FALSE && array_search($trfilter, $data["terrains"]) === FALSE) + continue; + + if ($sefilter !== FALSE && ($data["seasons"] & $sefilter) == 0) continue; + $seasons = array_map(function($x) { + return "".$x.""; + }, tlGetSeasonsFromFlags($data["seasons"])); + $row++; echo "". "".$data["name"]."". - "".implode(", ", $data["seasons"])."". + "".implode(", ", $seasons)."". ""; foreach ($data["terrains"] as $rkey) diff -r cd121447a2e1 -r 766bc2221e0b info/style.css --- a/info/style.css Thu Mar 13 02:49:15 2014 +0200 +++ b/info/style.css Thu Mar 13 02:59:08 2014 +0200 @@ -1,4 +1,4 @@ -body {background: black; color: white; font-family: arial,helvetica; font-size: 12px;} +body {background: black; color: white; font-family: arial,helvetica;} a {color: white; text-decoration: none;} a:visited {color: white; text-decoration: none;} th {font-weight: bold; background: #08f; text-align: left;}