From 58c26155eeb4a4beb97fe73ebf4ac4f7b683ba4d Mon Sep 17 00:00:00 2001 From: Woody Gilk Date: Mon, 14 Mar 2011 14:17:34 -0500 Subject: [PATCH] Added missing template detection when using "new View_Foo" instead of "Kostache::factory(foo)" --- classes/kohana/kostache.php | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/classes/kohana/kostache.php b/classes/kohana/kostache.php index 6136078..14e022e 100644 --- a/classes/kohana/kostache.php +++ b/classes/kohana/kostache.php @@ -56,8 +56,14 @@ abstract class Kohana_Kostache { * @uses Kostache::template * @uses Kostache::partial */ - public function __construct($template, array $partials = NULL) + public function __construct($template = NULL, array $partials = NULL) { + if ( ! $template) + { + // Detect the template for this class + $template = $this->_detect_template(); + } + // Load the template $this->template($template); @@ -233,4 +239,23 @@ abstract class Kohana_Kostache { return file_get_contents($file); } + /** + * Detect the template name from the class name. + * + * @return string + */ + protected function _detect_template() + { + // Start creating the template path from the class name + $template = explode('_', get_class($this)); + + // Remove "View" prefix + array_shift($template); + + // Convert name parts into a path + $template = strtolower(implode('/', $template)); + + return $template; + } + }