file = $tfn; } else { throw new Exception($tfn . ' does not exist'); } } function add($name, $value) { $this->tags[$name] = $value; } function adds($tagarr) { foreach ($tagarr as $name => $value) { $this->add($name,$value); } } function adds_block($block, $tagarr) { if (!isset($this->blocks[$block])) { $this->blocks[$block] = array('count' => 1); } foreach ($tagarr as $name => $value) { $this->blocks[$block][$this->blocks[$block]['count']][$name] = $value; } $this->blocks[$block]['count']++; } function add_ref($id, $block, $tagarr) { $this->adds_block($block,$tagarr); $this->refs[$id] = &$this->blocks[$block][$this->blocks[$block]['count']-1];//'$this->blocks[\'' . $block . '\'][' . ($this->blocks[$block]['count']-1) . ']'; } function adds_ref($id, $tagarr) { foreach ($tagarr as $name => $value) { $this->refs[$id][$name] = $value; } } function adds_ref_sub($id, $block, $tagarr) { if (!isset($this->refs[$id][$block])) { $this->refs[$id][$block] = array('count' => 1); } foreach ($tagarr as $name => $value) { $this->refs[$id][$block][$this->refs[$id][$block]['count']][$name] = $value; } $this->refs[$id][$block]['count']++; } function display() { $template = file_get_contents($this->file); while (preg_match('//',$template) == 1) { preg_match('//',$template,$mat); $fname = $mat[1]; $itmp = new FITemplate($fname); $template = str_replace('',file_get_contents($itmp->file),$template); } if (isset($this->tags)) { foreach ($this->tags as $name => $value) { $template = str_replace('',$value,$template); } } if (isset($this->blocks)) { foreach ($this->blocks as $bname => $block) { $this->parseBlock($template, $bname, $block); } } while (preg_match('//',$template) == 1) { preg_match('//',$template,$mat); $bname = $mat[1]; $start = strpos($template,''); $end = strpos($template,''); $template = str_replace(substr($template,$start,$end-$start+strlen($bname)+11),'',$template); } $template = preg_replace('//','',$template); echo($template); } function parseBlock(&$template, $bname, $block) { while (strpos($template,'') !== FALSE) { $start = strpos($template,''); $end = strpos($template,''); $gencont = substr($template,$start+strlen($bname)+13,$end-$start-strlen($bname)-13); $blockcont = ''; foreach ($block as $lname => $blocktags) { if ($lname != 'count') { $scrcont = $gencont; foreach ($blocktags as $name => $value) { if (!is_array($value)) { $scrcont = str_replace('',$value,$scrcont); } else { $this->parseBlock($scrcont, $bname . '.' . $name, $value); } } $blockcont .= $scrcont; } } $template = str_replace(substr($template,$start,$end-$start+strlen($bname)+11),$blockcont,$template); } } } ?> 'n4' href='#n4'>4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
name: "Southwest Room 2"
panels {
  name: "RAT"
  path: "Panels/Southwest Room2/sw_1"
  clue: "rat"
  answer: "rational"
  symbols: SPARKLES
}
panels {
  name: "EGO"
  path: "Panels/Southwest Room2/sw_2"
  clue: "ego"
  answer: "category"
  symbols: SPARKLES
}
panels {
  name: "FIT"
  path: "Panels/Southwest Room2/sw_3"
  clue: "fit"
  answer: "infinite"
  symbols: SPARKLES
}
panels {
  name: "GORY"
  path: "Panels/Southwest Room2/sw_4"
  clue: "gory"
  answer: "category"
  symbols: SPARKLES
}
panels {
  name: "NINE"
  path: "Panels/Southwest Room2/sw_5"
  clue: "nine"
  answer: "infinite"
  symbols: SPARKLES
}
panels {
  name: "RAIL"
  path: "Panels/Southwest Room2/sw_6"
  clue: "rail"
  answer: "rational"
  symbols: SPARKLES
}
panels {
  name: "CAT"
  path: "Panels/Southwest Room2/sw_7"
  clue: "cat"
  answer: "category"
  symbols: SPARKLES
}
panels {
  name: "ION"
  path: "Panels/Southwest Room2/sw_8"
  clue: "ion"
  answer: "rational"
  symbols: SPARKLES
}
panels {
  name: "INN"
  path: "Panels/Southwest Room2/sw_9"
  clue: "inn"
  answer: "infinite"
  symbols: SPARKLES
}