/** * @override */ function WdfRender() { $tempvars = system_render_object_tree($this->get_vars()); foreach ($GLOBALS as $key => &$val) { ${$key} = $val; } $buf = array(); foreach ($tempvars as $key => &$val) { if (isset(${$key})) { $buf[$key] = ${$key}; } ${$key} = $val; } if ($this instanceof HtmlPage && stripos($this->file, "htmlpage.tpl.php") !== false) { $__template_file = __autoload__template($this, $this->SubTemplate ? $this->SubTemplate : ""); if ($__template_file === false) { WdfException::Raise("SubTemplate for class '" . get_class($this) . "' not found: " . $this->file, $this->SubTemplate); } if (stripos($__template_file, "htmlpage.tpl.php") === false) { ob_start(); require $__template_file; $sub_template_content = ob_get_contents(); ob_end_clean(); } $this->file = __DIR__ . "/htmlpage.tpl.php"; } $__template_file = __autoload__template($this, $this->file); if ($__template_file === false) { WdfException::Raise("Template for class '" . get_class($this) . "' not found: " . $this->file); } ob_start(); require $__template_file; $contents = ob_get_contents(); ob_end_clean(); foreach ($tempvars as $key => &$val) { unset(${$key}); } foreach ($buf as $key => &$val) { ${$key} = $val; } if (system_is_ajax_call() && count($this->_script) > 0) { $contents .= "<script> " . implode("\n", $this->_script) . "</script>"; } return $contents; }
/** * Tries to load the template for the calling class * @param object|string $controller Object or class to load template for * @param string $template_name Pass '' (empty string) for this. * @return bool|string Returns the filename if found, else false */ function __autoload__template($controller, $template_name) { global $CONFIG; if (is_object($controller)) { $class = strtolower(get_class($controller)); } else { $class = $controller; } if ($template_name != "") { $key = "autoload_template-" . getAppVersion('nc') . $template_name; $r = cache_get($key); if ($r != false && file_exists($r)) { return $r; } if (file_exists($template_name)) { cache_set($key, $template_name, $CONFIG['system']['cache_ttl']); return $template_name; } $template_name2 = dirname(__search_file_for_class($class)) . "/" . $template_name; if (file_exists($template_name2)) { cache_set($key, $template_name2, $CONFIG['system']['cache_ttl']); return $template_name2; } $template_name2 = dirname(__search_file_for_class($class)) . "/base/" . $template_name; if (file_exists($template_name2)) { cache_set($key, $template_name2, $CONFIG['system']['cache_ttl']); return $template_name2; } } $key = "autoload_template_class-" . $class; $r = cache_get($key); if ($r != false && file_exists($r)) { return $r; } $file = __search_file_for_class($class); foreach (array_reverse($CONFIG['system']['tpl_ext']) as $tpl_ext) { $tpl_file = str_replace("class.php", $tpl_ext, $file ? $file : ""); if (file_exists($tpl_file)) { cache_set($key, $tpl_file, $CONFIG['system']['cache_ttl']); return $tpl_file; } } $pclass = get_parent_class($class); if ($pclass !== false && strtolower($pclass) != "template") { return __autoload__template($pclass, ""); } return false; }