Fix template_var hook

move it to smarty3 replate_macro, pass the theme name in $b
This commit is contained in:
fabrixxm 2015-11-06 19:52:00 +01:00
parent 545a7a80e4
commit 0aa69f134f
3 changed files with 21 additions and 11 deletions

View File

@ -274,7 +274,11 @@ $b is an array containing $nav from nav.php.
###'template_vars' ###'template_vars'
is called before vars are passed to the template engine to render the page. is called before vars are passed to the template engine to render the page.
The registered function can add,change or remove variables passed to template. The registered function can add,change or remove variables passed to template.
$b is the array of vars pased to 'replace_macros()' function. $b is an array with:
'template' => filename of template
'vars' => array of vars passed to template
Complete list of hook callbacks Complete list of hook callbacks

View File

@ -2,6 +2,7 @@
require_once "object/TemplateEngine.php"; require_once "object/TemplateEngine.php";
require_once("library/Smarty/libs/Smarty.class.php"); require_once("library/Smarty/libs/Smarty.class.php");
require_once "include/plugin.php";
define('SMARTY3_TEMPLATE_FOLDER','templates'); define('SMARTY3_TEMPLATE_FOLDER','templates');
@ -59,6 +60,15 @@ class FriendicaSmartyEngine implements ITemplateEngine {
$template = $s; $template = $s;
$s = new FriendicaSmarty(); $s = new FriendicaSmarty();
} }
// "middleware": inject variables into templates
$arr = [
"template"=> basename($s->filename),
"vars" => $r
];
call_hooks("template_vars", $arr);
$r = $arr['vars'];
foreach($r as $key=>$value) { foreach($r as $key=>$value) {
if($key[0] === '$') { if($key[0] === '$') {
$key = substr($key, 1); $key = substr($key, 1);

View File

@ -19,10 +19,6 @@ function replace_macros($s,$r) {
$stamp1 = microtime(true); $stamp1 = microtime(true);
// "middleware": inject variables into templates
call_hooks("template_vars", $r);
$a = get_app(); $a = get_app();
$t = $a->template_engine(); $t = $a->template_engine();