Повторная проблема. Включаю рекурсивно шаблон сам в себя и теряются переменные. Полное описание - ниже. Версия fenom текущая. Лучше смотреть в режиме html
То что описано выше происходит, при $force_compile==true, при $force_compile==false всё еще печальнее, я там специально вывел значение переменной $depth перед {switch}
Notice: Undefined index: depth in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 15
Notice: Undefined index: parent_view in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 15
>
Notice: Undefined index: depth in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 20
Notice: Undefined index: curdepth in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 23
Notice: Undefined index: curdepth in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 57
СЫРЫ ПОЛУТВЕРДЫЕ Премиум весовые.
СЫРЫ с БЕЛОЙ плесневой культурой Премиум весовые.
СЫРЫ с ГОЛУБОЙ плесневой культурой Премиум весовые.
СЫРЫ ТВЕРДЫЕ Премиум весовые.
Notice: Undefined index: depth in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 20
Notice: Undefined index: curdepth in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 23
Notice: Undefined index: curdepth in C:\server\www\dalimoshop2\www\system\lib\Fenom\Fenom\Template.php(437) : eval()'d code on line 57
Прочие прибалтийский сыры
Рокишкио Литва
Сваля Литва
```
В общем это довольно серьезная проблема, я уже описывал ее, но почему-то мне показалось, что это моя ошибка. Но здесь явно видно, что не моя, т.к. разное поведение при различных настройках. Может конечно я неправильно это делаю и вы мне объясните как надо. Просто в смарти делалось именно так.
Если тут не очень понятно, то дальше html версия данной записи
http://yadi.sk/d/6UqoQZ2dGACh5
Повторная проблема. Включаю рекурсивно шаблон сам в себя и теряются переменные. Полное описание - ниже. Версия fenom текущая. Лучше смотреть в режиме html
Есть вот такой массив $eprice_menu
Массив : Array ( [2875] => Array ( [id] => 1 [title] => ОСНОВНАЯ ГРУППА [orig_id] => 2875 [orig_parent_id] => 0 [count_object] => 85 [order_sort] => 0 [is_imp] => 100 [unit_id] => 1 [selected] => 1 [childlist] => Array ( [7] => Array ( [id] => 2 [title] => Весовые Отечественные сыры [orig_id] => 7 [orig_parent_id] => 2875 [count_object] => 121 [order_sort] => 0 [is_imp] => 127 [unit_id] => 1 [selected] => 1 [childlist] => Array ( [37022] => Array ( [id] => 3 [title] => Сыры ТМ "Сырная тарелка" [orig_id] => 37022 [orig_parent_id] => 7 [count_object] => 4 [order_sort] => 0 [is_imp] => 11 [unit_id] => 1 [selected] => 1 [childlist] => )
)
И такой шаблон
{var $curdepth=$depth+1} {foreach $eprice_menu as $k=>$v}-
{switch $curdepth}
{case 1}
{/foreach}
{$v.title}
{case 2} {$v.title} {case 3} {$v.title} {/switch} {if $v.childlist! && $v.childlist} {include 'eprice_menu.tpl' $eprice_menu=$v.childlist $parent_view=$v.selected $depth=$curdepth} {/if}Изначально включается в другой шаблон таким образом
{include 'eprice_menu.tpl' $parent_view=0 $depth=0}
Скомпилированный шаблон
<?php /\ Fenom template 'epricemenu.tpl' compiled at 2014-01-16 09:15:35 / return new Fenom\Render($fenom, function ($tpl) { ?>
<?php /_ epricemenu.tpl:2: {var $curdepth=$depth+1} / $tpl["curdepth"]=$tpl["depth"] + 1 ?> <?php /_ eprice_menu.tpl:3: {foreach $epricemenu as $k=>$v} / if($tpl["eprice_menu"]) { foreach($tpl["epricemenu"] as $tpl["k"] => $tpl["v"]) { ?> <li<?php / epricemenu.tpl:4: {if $v.selected} / if($tpl["v"]["selected"]) { ?> class='act'<?php /_ epricemenu.tpl:4: {/if} / } ?><?php /_ eprice_menu.tpl:4: {if $depth==1 || $v.selected || $parentview} / if($tpl["depth"] == 1 || $tpl["v"]["selected"] || $tpl["parentview"]) { ?> style='display:block;'<?php / epricemenu.tpl:4: {/if} / } ?>> <?php /_ epricemenu.tpl:5: {$depth} / echo $tpl["depth"]; ?> <?php /_ epricemenu.tpl:13: {/switch} / $t2580020879_1 = strval($tpl["curdepth"]); if($t2580020879_1 == '1') { ?>
} elseif($t2580020879_1 == '2') { ?> <?php /_ epricemenu.tpl:10: {$v.title} / echo $tpl["v"]["title"]; ?> <?php } elseif($t2580020879_1 == '3') { ?> <?php /_ epricemenu.tpl:12: {$v.title} / echo $tpl["v"]["title"]; ?> <?php } else { ?><?php } unset($t25800208791) ?> <?php / epricemenu.tpl:14: {if $v.childlist! && $v.childlist} / if(isset($tpl["v"]["childlist"]) && $tpl["v"]["childlist"]) { ?> <?php /_ eprice_menu.tpl:15: {include 'eprice_menu.tpl' $eprice_menu=$v.childlist $parentview=$v.selected $depth=$curdepth} / $tpl->getStorage()->getTemplate('eprice_menu.tpl')->display(array("0" => $tpl["eprice_menu"] = $tpl["v"]["childlist"],"1" => $tpl["parentview"] = $tpl["v"]["selected"],"2" => $tpl["depth"] = $tpl["curdepth"])+(array)$tpl); ?> <?php / epricemenu.tpl:16: {/if} / } ?> <?php /_ eprice_menu.tpl:18: {/foreach} */ } } ?> <?php }, array( 'options' => 128, 'provider' => false, 'name' => 'eprice_menu.tpl', 'base_name' => 'eprice_menu.tpl', 'time' => 1389852718, 'depends' => array ( 0 => array ( 'eprice_menu.tpl' => 1389852718, ), ), 'macros' => array(),
И результат вывода (при $force_compile==true)
ОСНОВНАЯ ГРУППА
То что описано выше происходит, при $force_compile==true, при $force_compile==false всё еще печальнее, я там специально вывел значение переменной $depth перед {switch}
ОСНОВНАЯ ГРУППА
СЫРЫ ПОЛУТВЕРДЫЕ Премиум весовые.
СЫРЫ с БЕЛОЙ плесневой культурой Премиум весовые.
СЫРЫ с ГОЛУБОЙ плесневой культурой Премиум весовые.
СЫРЫ ТВЕРДЫЕ Премиум весовые.
Прочие прибалтийский сыры
Рокишкио Литва
Сваля Литва