# HG changeset patch # User Matti Hamalainen # Date 1394672330 -7200 # Node ID 3428ff77ff47a26b2897c4a92625e91530619241 # Parent cee8d7e684745bc032a482178a1ee52e736c95ba More work, adding filtering. diff -r cee8d7e68474 -r 3428ff77ff47 info/index.php --- a/info/index.php Thu Mar 13 02:19:50 2014 +0200 +++ b/info/index.php Thu Mar 13 02:58:50 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 cee8d7e68474 -r 3428ff77ff47 info/style.css --- a/info/style.css Thu Mar 13 02:19:50 2014 +0200 +++ b/info/style.css Thu Mar 13 02:58:50 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;}