basedir . $template . $this->extension); $template_cache[$template] = $tpl_contents; } if($tpl_contents !== false) { $this->tpl = $tpl_contents; $this->tpl_rendered = $tpl_contents; } else { Throw new Exception("Failed to load template {$template}."); } } public function Reset() { if(!is_null($this->tpl)) { $this->tpl_rendered = $this->tpl; } else { Throw new Exception("No template loaded."); } } public function Localize($strings) { if(!is_null($this->tpl)) { preg_match_all("/<%!([a-zA-Z0-9_-]+)>/", $this->tpl_rendered, $strlist); foreach($strlist[1] as $str) { if(isset($strings[$str])) { $this->tpl_rendered = str_replace("<%!{$str}>", $strings[$str], $this->tpl_rendered); } } } else { Throw new Exception("No template loaded."); } } public function Compile($strings) { if(!is_null($this->tpl)) { preg_match_all("/<%\?([a-zA-Z0-9_-]+)>/", $this->tpl_rendered, $strlist); foreach($strlist[1] as $str) { if(isset($strings[$str])) { $this->tpl_rendered = str_replace("<%?{$str}>", $strings[$str], $this->tpl_rendered); } } } else { Throw new Exception("No template loaded."); } } public function Render() { if(!is_null($this->tpl)) { return $this->tpl_rendered; } else { Throw new Exception("No template loaded."); } } public function Output() { if(!is_null($this->tpl)) { echo($this->tpl_rendered); } else { Throw new Exception("No template loaded."); } } } ?>