В Smarty, я сталкиваюсь с такой HTML-код **Как повторно использовать код в smarty engine?
{section name=listAll loop=$scope}
(input id="a1" name="from"/>
(input id="b1" name="from"/>
(input id="c1" name="from"/>
{/section}
{section name=listAll loop=$scope}
(input id="a2" name="from"/>
(input id="b2" name="from"/>
(input id="c2" name="from"/>
{/section}
{section name=listAll loop=$scope}
(input id="a3" name="from"/>
(input id="b3" name="from"/>
(input id="c3" name="from"/>
{/section}
Могу ли я передать его функции, как следующие:.
function RenderControl($i)
{
return '
{section name=listAll loop=$scope}
(input id="a$i" name="from"/>
(input id="b$i" name="from"/>
(input id="c$i" name="from"/>
{/section}
} ';
Затем вызовите его в TPL файл как:
{RenderControl i=1}
{RenderControl i=2}
{RenderControl i=3}
Почему следующее не может работать на smarty tpl? $ Smarty-> register_function ('RenderHtml', 'RenderHtml'); функция RenderHtml ($ params) {extract ($ params); // $ html = '{include file = "tke-pre_bid_scopeworkModules/Section1_Factory_to_Price_Optional_Configurat ion.tpl"}'; return $ html; }
{RenderHtml Num = 12}
почему следующее не может работать за $ smarty-> register_function Smarty TPL ('RenderHtml', 'RenderHtml'); \t функция RenderHtml ($ params) { \t \t экстракт ($ params); \t \t \t \t // \t \t $ HTML = '\t {включаемый файл = "ТКЕ-pre_bid_scopeworkModules/Section1_Factory_to_Price_Optional_Configuration.tpl"}'; \t \t return $ html; \t} – user1490474
Что произойдет, если вы раскомментируете строку '$ html = ...'? Кроме того, я считаю, что функции шаблонов могут быть пост-оценены, поэтому вам может понадобиться предварительный фильтр, если вы хотите ввести текст, который оценивается как код Smarty. –