view info/index.php @ 80:cee8d7e68474

Renamed.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 13 Mar 2014 02:19:50 +0200
parents info/herb.php@03c54e5b60aa
children 3428ff77ff47
line wrap: on
line source

<?php
$terrainData = array(
  array("light forests"   , "lf", "f"),
  array("heavy forests"   , "hf", "F"),
  array("plains"          , "pl", "."),
  array("valleys"         , "va", "v"),
  array("fields"          , "fi", "y"),
  array("highlands"       , "hg", "H"),
  array("hills"           , "hi", "h"),
  array("desert"          , "de", "d"),
  array("swamps"          , "sw", "s"),
  array("abandoned ruins" , "ru", "#"),
  array("shores"          , "sh", "z"),
  array("beaches"         , "be", "b"),
  array("jungles"         , "ju", "j"),
  array("tundra"          , "tu", "t"),
  array("shallow water"   , "wa", "S"),
  array("mountains"       , "mo", "^"),
  array("badlands"        , "ba", "x"),
);

$seasonData = array(
  "spring", "summer", "autumn", "winter",
);


function tlGetTerrainDataByName($name)
{
  global $terrainData;
  foreach ($terrainData as $rkey => $rdata)
  {
    if ($rdata[0] == $name)
      return $rkey;
  }

  die("Unsupported terrain type '".$name."'.\n");
}


function tlGetTerrainDataByCode($val)
{
  global $terrainData;
  foreach ($terrainData as $rkey => $rdata)
  {
    if ($rdata[1] == $val)
      return $rkey;
  }

  return FALSE;
}


function tlGetSeasonFromName($name)
{
  global $seasonData;
  if (($season = array_search($name, $seasonData)) === FALSE)
    die("Invalid season name '".$name."'.\n");
  
  return $season;
}


$fh = @fopen("herbs.csv", "r");
$herbData = array();
if ($fh !== FALSE)
{
  while ($data = fgetcsv($fh, 1000, ";"))
  {
    $sdata = array();
    foreach (preg_split("/, */", $data[1]) as $value)
    {
      if ($value != "")
        $sdata[] = tlGetSeasonFromName($value);
    }

    $rdata = array();
    foreach (preg_split("/, */", $data[2]) as $value)
    {
      if ($value != "")
        $rdata[] = tlGetTerrainDataByName($value);
    }
    
    $herbData[] = array(
      "name"    => $data[0],
      "seasons" => $sdata,
      "terrains" => $rdata,
      "pair" => $data[3],
      "info" => $data[4],
    );
  }
  fclose($fh);
}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
 <head>
  <title>Some stupid plants</title>
  <link href="style.css" title="compact" rel="stylesheet" type="text/css">
 </head>
<body>
<table>
<caption>Some stupid plants</caption>
<tr>
<th>Plant name</th>
<th>Seasons</th>
<th>Terrain types</th>
<th>Herb pair</th>
<th>Information</th>
</tr>
<?php
$filter = -1;
if (isset($_GET["terrain"]))
{
  $data = tlGetTerrainDataByCode(strtolower(trim($_GET["terrain"])));
  if ($data !== FALSE)
    $filter = $data;
}

$row = 0;
foreach ($herbData as $data)
{
  if ($filter >= 0 && array_search($filter, $data["terrains"]) === FALSE)
    continue;

  $row++;
  echo
    "<tr class=\"".(($row % 2) ? "even" : "odd")."\">".
    "<td>".$data["name"]."</td>".
    "<td>".implode(", ", $data["seasons"])."</td>".
    "<td>";

  foreach ($data["terrains"] as $rkey)
  {
    $rdata = $terrainData[$rkey];
    echo "<a href=\"?terrain=".$rdata[1]."\"><span class=\"".$rdata[1]."\">".$rdata[2]."</span></a>";
  }

  echo
    "</td>".
    "<td>".$data["pair"]."</td>".
    "<td>".$data["info"]."</td>".
    "</tr>\n";
}
?>
</table>
</body>
</html>