fenom-template / fenom

Template Engine for PHP. Maintainers wanted!
Other
446 stars 108 forks source link

Проблема с наследование шаблонов. #229

Closed maxisoft-git closed 8 years ago

maxisoft-git commented 8 years ago

Ошибка аналогично описанной ранее с insert и include шаблонами, теперь она и в {extends} присутствует

Fatal error: Uncaught Error: Call to undefined function fenom_function_csrf_token() in /Users/admin/Sites/faunaface2/cache/themeinstant_faunaface_breeds_cats_edit.tpl.bd2d83e6.16.php on line 22

как она получается есть 2 шаблона index.tpl и form.tpl

вот такие index.tpl

<form>
<input type='hidden' value='{csfr_token}'>
{block 'form'}[/block}
</form>

form.tpl

{extends index.tpl}

{block 'form'}<div>form</div>{/block}

функция подключена через авто загрузчик модификаторов и плагинов.

при первичной сборке скомпилированного шаблона все нормально при обновлении страницы все рушиться.

<?php 
/** Fenom template 'breeds_cats_edit.tpl' compiled at 2016-05-18 16:55:37 */
if (!is_callable('fenom_function_wysiwyg')) {
    include_once '/Users/admin/Sites/faunaface2/core/tpl_classes/plugins/fenom/function.wysiwyg.php';
}

return new Fenom\Render($fenom, function ($var, $tpl) {
?><div class="navbar-component">
    <?php
/* index.tpl:2: {include 'menu.tpl'} */
 $tpl->getStorage()->getTemplate('menu.tpl')->display($var); ?>
</div>
<div class="pjax-page" id="pjax-page">

    <form class="form" action="<?php
/* form_edit.tpl:3: {$base_url} */
 echo $var["base_url"]; ?>&opt=<?php
/* form_edit.tpl:3: {$form_action} */
 echo $var["form_action"]; ?>" method="post">
        <input type="hidden" name="csrf_token" value="<?php
/* form_edit.tpl:4: {csrf_token} */

вот код и как можно видеть что в скомпилированном шаблоне нет вставки функции из родительского шаблона.

pafnuty commented 8 years ago
{block 'form'}[/block}

ошибка или опечатка? квадратная скобка вместо фигурной

maxisoft-git commented 8 years ago

очепятка. :)

sleuthhound commented 8 years ago

Так даже я не понял, что здесь нужно выводить, не то, что шаблонизатор

<input type='hidden' value='{csfr_token}'>

Как минимум, если переменная, то {$csfr_token} или {$.get.csfr_token} PS: можно мне тоже в project member )

maxisoft-git commented 8 years ago

Причем тут переменные {csrf_token} это функция расширения шаблонизатора, :) видать не используете в своей работе, а я вот плотно. Феном собирает только функции из дочки

if (!is_callable('fenom_function_wysiwyg')) {
    include_once '/Users/admin/Sites/faunaface2/core/tpl_classes/plugins/fenom/function.wysiwyg.php';
}

а вот из родителя теряются вставки вызов функции.

sleuthhound commented 8 years ago

Ага, ни разу не использовал, сейчас почитаю, а можно полный код приложить, мне интересно стало, это получается у вас линейная функция? Въехать не могу, отстал от жизни)

bzick commented 8 years ago

2.11.0