Шаблоны Smarty — обзор полезных обновлений

Шаблоны Smarty - обзор полезных обновлений

Сберечь немало сил и времени разработчику веб-приложений на базе PHP поможет продуманная подборка наиболее полезных шаблонов и советов по использованию команд для Smarty. Рассмотрим ряд кандидатов в Вашу будущую коллекцию.

Используйте при работе со Smarty для повторной выдачи одного и того же HTML-кода теги {capture}. С их помощью можно вначале приписать значение переменной и затем выдавать его многократно.

Функции, работающие с этим же тегом, упрощают обращение к элементу массива глобальной переменной, содержащейся в другом шаблоне.

Благодаря встроенной в Smarty консоли отладчика, достаточно удобно анализировать значения переменных, объявленных в шаблоне, с которым производится работа, а также в импортируемых в него шаблонах и файлах конфигурации. Для активации данной консоли достаточно команды $smarty->debugging = true;

С использованием Smarty, достаточно компактным и удобным будет выглядеть получение значений любой из многочисленных переменных в составе запроса к серверу.

Имейте в виду, что переменные шаблонов, содержащие пустые значения, способны испортить формируемый HTML-код. Проблемы могут возникнуть в этом случае и с таблицами, и с изображениями и т.д. Данная ситуация решается без особого труда путём использования тегов {if}{else}. Соответственно, если значение переменной оказывается при проверке пустым, имееется возможность использовать вариант, предусмтренный по умолчанию.

Присваиваемые значения достаточно удобно передавать переменным в суб-шаблонах в виде параметров. Для этой цели целесообразно создавать атрибуты внутри тегов{include} и присваивать им соответствующие значения.

Smarty позволяет создавать функции внутри отдельных шаблонов и затем вызывать их, обращаясь к этим шаблонам, так же, как это делается при обращении к расширениям. Подобный приём рекомендуется использовать при наполнении повторяющихся блоков HTML-кода, например, когда речь идёт об элементах меню.

Чтобы затруднить работу потенциальным спаммерам и ботам, старайтесь не указывать почтовые адреса непосредственно в своём HTML-коде. Вместо этого рекомендуется передавать соответствующее значение вместе с переменной адреса, используя атрибут тега {mailto} в шаблоне. Это значение сумеет прочитать Javascript на странице и сделать его доступным для реальных посетителей спйта, но не для ботов.

Достаточно распространённым приёмом служит чередование используемых значений CSS. Это позволяет облегчить восприятие, например, сложных таблиц, чётные и нечётные ряды которых можно снабдить разным фоном.  Оговорить такое чередование внутри шаблона можно реализовать крайне экономным образом, прописав соответствующие требования внутри тега {cycle}.

Наконец, нелишне напомнить, что Smarty создаёт скомпилированные копии шаблонов в виде РНР-скриптов. Благодаря этому достигается сочетание всех известных преимуществ работы с тегами с одной стороны и скорости работы РНР — с другой. Компиляция шаблонов имеет место только однократно, при первом обращении, вслед за чем при повторном использовании того же шаблона программа имеет дело уже с его компилированной копией.