setName($name); } function render() { $content = $this; while ($content->hasOuterTemplate()) { $outer = $content->getOuterTemplate(); $content->onContent($outer); $outer->content = $content; $content = $outer; } return $content; } function onContent ($view) { } function setName($name) { $this->name = $name; } function getName() { return $this->name; } function setRootDirectory($root_directory) { $this->root_directory = $root_directory; } function getRootDirectory() { return $this->root_directory; } function hasRootDirectory() { return isset($this->root_directory); } function setDirPrefix ($dir_prefix) { $this->dir_prefix = $dir_prefix; } function getDirPrefix () { return $this->dir_prefix; } function hasDirPrefix () { return isset($this->dir_prefix); } function setOuterTemplate($outer_template) { $this->exportGlobalVars($outer_template); $this->outer_template = $outer_template; } function getOuterTemplate() { return $this->outer_template; } function hasOuterTemplate() { return isset($this->outer_template); } function __toString () { try { $result = $this->renderContent(); } catch (Exception_BadInstallation $e) { util::invalidInstallationMessage ($e); } catch (Kohana_Database_Exception $e) { Kohana::log ('error', $e->getTraceAsString ()); $result = '
Database error.
'; } catch (Exception $e) { $result = $e->getMessage(); } return $result; } function addGlobalVar($name, $value) { $this->global_vars[$name] = $value; } function getGlobalVars($name = null) { if (isset($name)) { if (isset($this->global_vars[$name])) { return $this->global_vars[$name]; } } else { return $this->global_vars; } } function exportGlobalVars (View_Template $target) { foreach ($this->getGlobalVars() as $name => $value) { $target->addGlobalVar($name, $value); } } }