diff --git a/README.markdown b/README.markdown index fe144b7..2b467cf 100644 --- a/README.markdown +++ b/README.markdown @@ -1,6 +1,6 @@ # Kostache -Kostache is a [Kohana 3](https://github.com/kohana/kohana) module for using [Mustache](http://defunkt.github.com/mustache/) templates in your application. +Kostache is a [Kohana 3](https://github.com/kohana/kohana) module for using [Mustache](http://mustache.github.com/) templates in your application. ## Usage @@ -54,4 +54,4 @@ For specific usage and documentation, see: [PHP Mustache](http://github.com/bobthecow/mustache.php) -[Original Mustache](http://defunkt.github.com/mustache/) +[Original Mustache](http://mustache.github.com/) diff --git a/classes/Mustache/Loader/Kohana.php b/classes/Mustache/Loader/Kohana.php index 49de1c3..001e7a2 100644 --- a/classes/Mustache/Loader/Kohana.php +++ b/classes/Mustache/Loader/Kohana.php @@ -13,7 +13,7 @@ class Mustache_Loader_Kohana implements Mustache_Loader, Mustache_Loader_Mutable if (isset($options['extension'])) { - $this->_extension = '.' . ltrim($options['extension'], '.'); + $this->_extension = ltrim($options['extension'], '.'); } } @@ -29,7 +29,13 @@ class Mustache_Loader_Kohana implements Mustache_Loader, Mustache_Loader_Mutable protected function _load_file($name) { - $filename = Kohana::find_file($this->_base_dir, $name, $this->_extension); + $filename = Kohana::find_file($this->_base_dir, strtolower($name), $this->_extension); + + if ( ! $filename) + { + throw new Kohana_Exception('Mustache template ":name" not found', array(':name' => $name)); + } + return file_get_contents($filename); } diff --git a/config/userguide.php b/config/userguide.php deleted file mode 100644 index 353acf1..0000000 --- a/config/userguide.php +++ /dev/null @@ -1,23 +0,0 @@ - array( - - // This should be the path to this modules userguide pages, without the 'guide/'. Ex: '/guide/modulename/' would be 'modulename' - 'kostache' => array( - - // Whether this modules userguide pages should be shown - 'enabled' => TRUE, - - // The name that should show up on the userguide index page - 'name' => 'KOstache', - - // A short description of this module, shown on the index page - 'description' => 'Logic-less View/Mustache Module for Kohana v3', - - // Copyright message, shown in the footer for this module - 'copyright' => 'Zombor', - ) - ) -); \ No newline at end of file diff --git a/guide/kostache/examples.md b/guide/kostache/examples.md deleted file mode 100644 index 6068751..0000000 --- a/guide/kostache/examples.md +++ /dev/null @@ -1,139 +0,0 @@ -# Kostache Examples - -## Complex Example - -Model (This example uses [AutoModeler](http://github.com/zombor/Auto-Modeler)): - - class Model_Test extends AutoModeler - { - protected $_table_name = 'tests'; - - protected $_data = array( - 'id' => '', - 'name' => '', - 'value' => '', - ); - - protected $_rules = array( - 'name' => array('not_empty'), - 'value' => array('not_empty'), - ); - } - -View: - - class View_Example extends Kostache - { - public $title = 'Testing'; - - public function things() - { - return Inflector::plural(get_class(new Model_Test)); - } - - public function tests() - { - $tests = array(); - foreach (AutoModeler::factory('test')->fetch_all() as $test) - { - $tests[] = $test->as_array(); - } - return $tests; - } - } - -Template: - - - - - - {{title}} - - -

{{title}}

-

Here are all my {{things}}:

- - - - -Controller: - - class Controller_Welcome extends Controller { - - public function action_index() - { - echo new View_Example; - } - - } // End Welcome - -## Grabbing a single model value - -Model (This example uses [AutoModeler](http://github.com/zombor/Auto-Modeler)): - - class Model_Test extends AutoModeler - { - protected $_table_name = 'tests'; - - protected $_data = array( - 'id' => '', - 'name' => '', - 'value' => '', - ); - - protected $_rules = array( - 'name' => array('not_empty'), - 'value' => array('not_empty'), - ); - } - -View: - - class View_Singular extends Kostache - { - protected $_pragmas = array(Kostache::PRAGMA_DOT_NOTATION => TRUE); - - public $thing_id = NULL; - public $title = 'Testing'; - - public function thing() - { - return new Model_Test($this->thing_id); - } - } - -Template: - - - - - - {{title}} - - -

{{title}}

-

This is just one thing:

-

{{thing.id}}

- - - - -Controller: - - class Controller_Welcome extends Controller { - - public function action_singular($id) - { - $view = new View_Singular; - $view->thing_id = $id; - echo $view; - } - } // End Welcome diff --git a/guide/kostache/index.md b/guide/kostache/index.md deleted file mode 100644 index 72aefac..0000000 --- a/guide/kostache/index.md +++ /dev/null @@ -1,7 +0,0 @@ -# About Kostache - -Kostache is a Kohana module for using [Mustache](http://defunkt.github.com/mustache/) templates in your application. - -Mustache is a logic-less template class. It is impossible to embed logic into mustache files. - -This module requires mustache.php and includes it as a git submodule. See [Working With Git](tutorials.git) for more information about managing submodules. \ No newline at end of file diff --git a/guide/kostache/menu.md b/guide/kostache/menu.md deleted file mode 100644 index a76cf3f..0000000 --- a/guide/kostache/menu.md +++ /dev/null @@ -1,4 +0,0 @@ -1. **Kostache** - - [About](index) - - [Usage](usage) - - [Examples](examples) \ No newline at end of file diff --git a/guide/kostache/usage.md b/guide/kostache/usage.md deleted file mode 100644 index 9bd0148..0000000 --- a/guide/kostache/usage.md +++ /dev/null @@ -1,58 +0,0 @@ -# Kostache Usage - -View classes go in classes/view/ - -classes/view/example.php - - class View_Example extends Kostache - { - public $foo = 'bar'; - } - -Template files go in templates/ - -templates/example.mustache - - This is a {{foo}} - -In your controller, just do: - - $view = new View_Example; - echo $view; - -And you get: - - "This is a bar" - -## Partials - -To use a partial in your template you use the greater than sign (>) and the name, e.g. {{>header}}. - -You must define partials within the $_partials array in your view class. The key is the name that you use in your template and the value is a path to your partial file. - - protected $_partials = array( - 'header' => 'header', // Loads templates/header.mustache - 'footer' => 'footer/default', // Loads templates/footer/default.mustache - ); - -## Using the Kostache_Layout class - -Kostache comes with a Kostache_Layout class instead of a template controller. This allows your layouts to be more OOP and self contained, and they do not rely on your controllers so much. - -To use it, have your view extend the Kostache_Layout class. You can then specify your own layout file by placing it in templates/layout.mustache. At a minimum, it needs to have a {{>content}} partial defined in it. - -If you have a view that extends the Kostache_Layout class, but wish to render only the template and not the entire layout, you can set the public $render_layout property to FALSE. This is useful if you want to use the same view class for external requests and HMVC requests. - - $view = new View_Post_List; - if ($this->request !== Request::instance) // Is internal request - { - $view->render_layout = FALSE; - } - -## Mustache Documentation - -For specific usage and documentation, see: - -[PHP Mustache](http://github.com/bobthecow/mustache.php) - -[Original Mustache](http://defunkt.github.com/mustache/) \ No newline at end of file