Last active
May 7, 2016 17:44
-
-
Save bastianallgeier/edf33e468e3c022e4772 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
kirby::$handlers['template'] = function($kirby, $page, $data = array()) { | |
require_once(__DIR__ . DS . 'vendor' . DS . 'autoload.php'); | |
$loader = new Twig_Loader_Filesystem($kirby->roots()->templates()); | |
$twig = new Twig_Environment($loader, array( | |
'cache' => false | |
)); | |
$data = array_merge(tpl::$data, array( | |
'kirby' => $kirby, | |
'site' => $kirby->site(), | |
'pages' => $kirby->site()->children(), | |
'page' => $page | |
), $page->templateData(), $data, $kirby->controller($page, $data)); | |
return $twig->render(basename($page->templateFile()), $data); | |
}; |
@shiftsave You might not need it anymore after close to one year, but for the record I made a Twig template component for Kirby 2.3: https://github.com/fvsch/kirby-twig
(And for other PHP templating engines, I guess it’s an okay enough example to help get people started.)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This looks good, but why not leave the creation of the $data object to the caller? This will probably always be the same anyway, and is already defined here:
https://github.com/getkirby/kirby/blob/master/kirby.php#L666
Also, why is tpl::$data overridden on each call to $kirby->template()?