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; + } + }