getTpl();
if (empty($tplFile)) {
throw new \Exception('ERROR: template file was not set!');
}
foreach ($this->getTemplateDir() as $dir) {
if (file_exists($dir . DIRECTORY_SEPARATOR . $tplFile)) {
$tplFile = $dir . DIRECTORY_SEPARATOR . $tplFile;
break;
}
}
if (! file_exists($tplFile)) {
throw new \Exception('ERROR: template file '.$tplFile.' does not exist!');
}
extract($this->data);
include $tplFile;
if (! empty(self::$extend)) {
$tplFile = ''; //$this->getTemplateDir() . DIRECTORY_SEPARATOR . self::$extend . '.phtml';
foreach ($this->getTemplateDir() as $dir) {
if (file_exists($dir . DIRECTORY_SEPARATOR . self::$extend . '.phtml')) {
$tplFile = $dir . DIRECTORY_SEPARATOR . self::$extend . '.phtml';
break;
}
}
if (! file_exists($tplFile)) {
throw new \Exception('ERROR: Layout template file '.$tplFile.' does not exist!');
}
extract($this->data);
include $tplFile;
}
}
static public function extend($name)
{
self::$extend = $name;
}
static public function block($name, $default = '')
{
if (is_string($default)) {
if (array_key_exists($name, self::$blocks)) {
$callback = self::$blocks[$name];
$callback();
} else {
return $default;
}
return;
} elseif ($default instanceof \Closure) {
self::$blocks[$name] = $default;
}
}
}