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); | |
}; |
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()?
@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
@shiftsave It sucks so badly that I didn't get any notifcation about your comment. I'm about to add the handlers api to the next version of Kirby, which makes this kind of plugins super easy. I'm not actually planning to be the main developer of a twit plugin, but I'd love to through a first version out there for a real twig expert to extend it. The same could happen for Jade.