public function run(WS_Environment $env) { CMS::$env = $env; CMS::$page = $env; $env->cms = new stdClass(); Core::load('Templates.HTML'); $env->meta = Templates_HTML::meta(); $env->mappers = CMS::mappers(); $env->auth = new stdClass(); $env->auth->user = false; CMS::$cfg = $env->config; if ($env->db->default) { CMS::$db = $env->db->default; } Templates_HTML::use_helper('fields', 'CMS.Fields.Helper'); Templates_HTML::use_helper('cms', 'CMS.Helper'); Templates::option('templates_root', array_merge(Templates::option('templates_root'), array(CMS::$views_path))); return $this->application->run($env); }
/** * Возвращает путь до partial шаблона * * @param string $name * * @return string */ protected function get_partial_path($name, $paths = array()) { if (Core_Strings::starts_with($name, '!')) { $trace = debug_backtrace(); foreach ($trace as $k => $t) { if (Core_Strings::ends_with($t['file'], $this->extension)) { break; } } return Templates::add_extension(dirname($trace[$k]['file']) . '/' . substr($name, 1), $this->extension); } $file = Templates::add_extension($name, $this->extension); if (Templates::is_absolute_path($name)) { return $file; } $paths = array_merge($paths, $this->partial_paths(), Templates::option('templates_root')); foreach ($paths as $path) { $result = rtrim($path, '/') . '/' . $file; if (is_file($result)) { return $result; } } return $result; }