templateDir = $templateDir; $this->lang = ereg_replace( '[\\|/]', '', getLanguageName()); } function fetch($name, $dir = null, $suffix = 'html') { $path = $this->templateDir.'/'.( $dir ? strtolower($dir) . '/' : '' ).strtolower($name).'_'.$this->lang.( $suffix ? '.'.strtolower($suffix) : '' ); if ( ! file_exists($path) ){ $path = $this->templateDir.'/'.( $dir ? strtolower($dir) . '/' : '' ).strtolower($name).'_'.$this->defaultLang.( $suffix ? '.'.strtolower($suffix) : '' ); if ( ! file_exists($path) ) return ''; } $fsize = filesize($path); if ($fsize <= 0) return ''; $fd = fopen($path, 'r'); $contents = fread($fd, $fsize); fclose($fd); return $contents; } function fill($template, $values, $default = null) { if( $default ) return preg_replace($this->defalutPattern, 'isset($values[\'$1\']) ? (\'$2\' ? htmlspecialchars($values[\'$1\'], ENT_QUOTES) : $values[\'$1\']) : $default', $template); if( $default === null ) return preg_replace($this->defalutPattern, '(\'$2\') ? htmlspecialchars($values[\'$1\'], ENT_QUOTES) : $values[\'$1\']', $template); return preg_replace($this->defalutPattern, 'isset($values[\'$1\']) ? (\'$2\' ? htmlspecialchars($values[\'$1\'], ENT_QUOTES) : $values[\'$1\']) : \'{{$1}}\' ', $template); } function fetchAndFill($name, $values, $dir = null, $suffix = 'html', $default = null){ $tpl = $this->fetch($name, $dir, $suffix); return $this->fill($tpl, $values, $default); } }