Что то не могу найти (нет в принципе?) в smarty макросов.
Задача: вставить в разные места шаблона один и тот же код. Где-то в одну строку, где-то в десяток.
Понятно, что можно это сделать с помощью {include} или {insert}, но надо будет выносить кусочки кода в отдельные файлы, чего делать не хочется. Хочется написать что-то типа
{macro name="macros" }
мой-любимый-код
{/macro}
и затем в нужные места просто вставлять что-то типа {$macros}.
Вопрос: это я не могу найти нужную директиву smarty или ее действительно нет?
2
Вопрос по Smarty
Автор badisoft, Dec 27 2012 03:47 PM
Сообщений в теме: 4
#1
Отправлено 27 December 2012 - 03:47 PM
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#3
Отправлено 27 December 2012 - 06:01 PM
Я HTML-код имел в виду . Куски HTML, причем еще и со смарти-переменными, которые совершенно одинаковы и встречаются в нескольких местах TPL.HTML. А я именно этот (эти) куски постоянно меняю. Надоело единообразно менять в нескольких местах.как один из вариантов использовать {php} и вызывать "мой любимый код"
PS. Сделать свой простенький плагин для смарти, скорее всего, сработает, но тогда уж проще include/insert. Ну да и фиг с ним. Примем за истину, что {macro} в Смарти нет. Хотя и странно это.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#4
Отправлено 27 February 2013 - 05:18 PM
Мне кажется, что подойдет использование {capture} Любимый код заключается в теги {capture name='foo'} и {/capture}
и потом выводится в шаблоне при помощи - $smarty.capture.foo
и потом выводится в шаблоне при помощи - $smarty.capture.foo
#5
Отправлено 27 February 2013 - 06:11 PM
Спасибо! Это именно оно!Мне кажется, что подойдет использование {capture}
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)