From 2230dd4e6b148346c0ec596b9e3e12996a762ed8 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Thu, 22 May 2014 12:28:28 -0400 Subject: Code refactoring (add autoloader and change files organization) --- app/Core/Template.php | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 app/Core/Template.php (limited to 'app/Core/Template.php') diff --git a/app/Core/Template.php b/app/Core/Template.php new file mode 100644 index 00000000..8740a685 --- /dev/null +++ b/app/Core/Template.php @@ -0,0 +1,72 @@ +load('template_name', ['bla' => 'value']); + * + * @access public + * @return string + */ + public function load() + { + if (func_num_args() < 1 || func_num_args() > 2) { + die('Invalid template arguments'); + } + + if (! file_exists(self::PATH.func_get_arg(0).'.php')) { + die('Unable to load the template: "'.func_get_arg(0).'"'); + } + + if (func_num_args() === 2) { + + if (! is_array(func_get_arg(1))) { + die('Template variables must be an array'); + } + + extract(func_get_arg(1)); + } + + ob_start(); + + include self::PATH.func_get_arg(0).'.php'; + + return ob_get_clean(); + } + + /** + * Render a page layout + * + * @access public + * @param string $template_name Template name + * @param array $template_args Key/value map + * @param string $layout_name Layout name + * @return string + */ + public function layout($template_name, array $template_args = array(), $layout_name = 'layout') + { + return $this->load( + $layout_name, + $template_args + array('content_for_layout' => $this->load($template_name, $template_args)) + ); + } +} -- cgit v1.2.3