Советы Обработка пустых переменных Иногда, например, для того чтобы фон таблицы работал корректно, необходимо вывести вместо пустого значения переменной, значение по умолчанию " ". Многие бы использовали конструкцию {if}, но есть более короткий путь в Smatry используя default модификатор переменной. Вывод  , если переменная пуста Обработка переменных по умолчанию Если переменная встречается часто, то использование модификатора default каждый раз можно избежать, используя функцию assign. Назначение переменной шаблона значения по умолчанию Присвоение переменной заголовка (title) заголовку шаблона. Если большинство ваших шаблонов имеют похожие верхние и нижние части, то имеет смысл вынести их в отдельные файлы. Но если шапка должна иметь различные заголовки на различных страницах? Смотрите пример ниже. Присвоение переменной заголовка (title) заголовку шаблона. {$title|default:"BC News"} footer.tpl ---------- ]]> Если выводится главная страница, то заголовок будет "Main Page", если архивы, то заголовк берется из файла конфигурации. Если заголовок будет пустой, то выведется значение по умолчанию "BC News". Даты Обычно даты в Smarty всегда передаются как временные метки, что позволяет проектировщикам шаблонов использовать date_format для полного контроля над форматированием даты и также делает легким сравнение дат там, где это необходимо. Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде меток времени Unix (unix timestamps), mysql, или в любом другом виде, который принимает strtotime(). using date_format Результат работы: Результат работы: Когда {html_select_date} используется в шаблоне, программистам может понадобиться получить дату виде временной метки. Вот функция, которая поможет это сделать. Преобразование элементов формы ввода даты назад к временной метке ]]> WAP/WML WAP/WML шаблоны требуют, чтобы заголовок Content-type был передан вместе с шаблоном. Простейший путь - написать пользовательскую функцию, которая будет выводить заголовки. Так как мы будем пользоваться тэгами insert, то заголовки не будут кэшироваться. Так же ничего не должно выводиться в браузер до шаблона, иначе заголовки могут быть неправильно восприняты. Использование insert для записи WML Content-Type заголовков ]]> ваш шаблон Smarty должен начинаться с тэга insert:

Welcome to WAP with Smarty! Press OK to continue...

Pretty easy isn't it?

]]>
Составные шаблоны По традиции, программирование шаблонов в вашем приложении идёт следующим путём: Сначала вы формируете переменные внутри вашего приложения PHP (возможно используя запросы к базе данных). Затем вы создаёте экземпляр объекта Smarty, назначаете переменные и отображаете шаблон. Давайте представим себе такую ситуацию: К примеру, у нас есть котировщик ценных бумаг в нашем шаблоне. Мы собираем данные о котировках ценных бумаг в нашем приложении, затем передаём эти переменные в шаблон и отображаем его. Правда, было бы здорово, если бы этот котировщик можно было перенести в другое приложение, просто подключив к нему шаблон, не беспокоясь об источнике данных. Вы можете сделать это, написав собственный плагин для получения данных и присваивания их переменной шаблона. составной шаблон assign($params['assign'], $ticker_info); } ?> ]]> Сокрытие E-mail адреса Вы когда-нибудь удивлялись, как ваш e-mail адрес попадает в такое количество спамерских рассылок? Один из способов сбора e-mail адресов заключается в просмотре веб-страниц. Чтобы помочь предотвратить эту проблему, вы можете сделать так, чотбы ваш e-mail адрес отображался в скрытом за javascript'ом виде в HTML-исходниках, в то же время выглядя и работая корректно в браузере. Это можно совершить при помощи плагина mailto. Пример сокрытия e-mail адреса Техническое Замечание Этот метод не может гарантировать 100% защиты. Существует вероятность, что спамер запрограммирует свой сборщик e-mail адресов на раскодирование этих значений, но это маловероятно.