DVLev
Новичок
Smarty - проблема с {assign var} и {capture}
Добрый день.
Есть шаблон:
-------------------------------
{capture name='first'}
{assign var=control value='first'}
{/capture}
{capture name='second'}
{assign var=control value='second'}
{/capture}
{$control}
------------------------------
Выводит "second", а по логике вообще ничего не должен выводить, поскольку я ни разу не вызвал {$smarty.capture.first} или {$smarty.capture.second}. Это баг или фича?
На самом деле проблема разумеется намного сложнее, я просто упростил для наглядности пример. Я честно говоря думал, что capture - это аналог функций, т.е. до тех пор пока они явно не вызваны - код в них не отрабатывается, получается, что я ошибался. Следствие из всего этого - если у Вас очень большой шаблон и там много вызовов вспомогательных функций типа {html_options}, {html_image} и прочих, в различных блоках {capture} - они при выводе все отрабатываются в независимости нужно это или нет, соответственно появляются тормоза при выводе.
Добрый день.
Есть шаблон:
-------------------------------
{capture name='first'}
{assign var=control value='first'}
{/capture}
{capture name='second'}
{assign var=control value='second'}
{/capture}
{$control}
------------------------------
Выводит "second", а по логике вообще ничего не должен выводить, поскольку я ни разу не вызвал {$smarty.capture.first} или {$smarty.capture.second}. Это баг или фича?
На самом деле проблема разумеется намного сложнее, я просто упростил для наглядности пример. Я честно говоря думал, что capture - это аналог функций, т.е. до тех пор пока они явно не вызваны - код в них не отрабатывается, получается, что я ошибался. Следствие из всего этого - если у Вас очень большой шаблон и там много вызовов вспомогательных функций типа {html_options}, {html_image} и прочих, в различных блоках {capture} - они при выводе все отрабатываются в независимости нужно это или нет, соответственно появляются тормоза при выводе.