Методические указания к выполнению лабораторных и курсовой работ ЙошкарОла 2007
![]()
|
КомментарииКомментарии в шаблонах заключаются в звездочки(*) окруженные . разделителями, например: {* это комментарий *}. Комментарии не отображаются в выводе шаблона. Они используются для внутренних примечаний в шаблонах. Комментарии
ПеременныеПеременные шаблона начинаются со знака доллара. Они могут состоять из цифр, букв, знаков подчёркивания - как и обычные переменные PHP. Можно обращаться к массивам, имеющим числовые и нечисловые индексы. Также можно обращаться к свойствам и методам объектов. Переменные конфигурационного файла - это исключения из долларового синтаксиса. К ним можно обращаться, окружив их решетками или воспользовавшись специальной переменной $smarty.config. Переменные
ФункцииКаждый тэг Smarty либо выводит значение переменной,либо вызывает некоторую функцию. Для вызова функции надо название функции и ее параметры заключить в разделители, например: {funcname attr1="val" attr2="val"}. Синтаксис функций
И встроенные, и пользовательские функции используются с одинаковым синтаксисом. Встроенные функции реализованы внутри Smarty и не могут быть изменены или переопределены. Это такие функции, как if, section, strip. Пользовательские функции реализуются через плагины. Примеры пользовательских функций: html_options, html_select_date. Большинство функций принимает параметры, которые уточняют или изменяют ее поведение. Параметры в Smarty очень похожи на параметры в HTML. Не обязательно заключать статические значения в кавычки, хотя текст рекомендуется заключать в кавычки. Переменные также могут быть использованы в качестве параметров, и не должны заключаться в кавычки. Некоторые параметры принимают логические значения (правда или ложь). Они могут быть указаны словами true, on, и yes, или false, off, и no без кавычек. Синтаксис параметров функции
Внедренные переменные в двойных кавычкахSmarty распознает переменные, если они встречаются в строках, заключенных в двойные кавычки. Распознаются переменные, состоящие из чисел, букв, символов подчеркивания и квадратных кавычек. Если надо использовать другие символы для обозначения переменной (точка, указатель объекта и т.д.), то переменную необходимо заключить в обратные кавычки. В данном случае нельзя использовать модификаторы, их следует применять вне кавычек. Синтаксис внедренных переменных
Арифметические операцииАрифметические операции могут совершаться непосредственно над значениями переменных. Примеры арифметики
Предотвращение обработки SmartyИногда необходимо, чтобы Smarty не обрабатывал часть шаблона, которая должна по умолчанию обрабатываться. Классическим примером такой ситуации является встраивание Javascript или CSS-кода в шаблон. Проблема появляется из-за того, что эти языки используют символы { и }, которые так же используются в качестве разделителей для Smarty. Самым простым решением является избежание этой ситуации путём выноса Javascript'а и CSS-кода в отдельные файлы и использования стандартных методов HTML для доступа к ним. Дословное включение контента возможно при помощи блоков {literal} .. {/literal}. Подобно тому, как вы используете HTML-сущности ( и т.п.), можно использовать {ldelim},{rdelim} или {$smarty.ldelim},{$smarty.rdelim} для отображения текущих разделителей. Порой бывает удобно просто изменить свойства $left_delimiter и $right_delimiter в объекте Smarty. Пример 3-7. Изменение разделителей
Шаблон example.tpl:
ПеременныеSmarty имеет несколько различных типов переменных. Он зависит от символа, с которого начинается, или в какой заключена переменная. Переменные в Smarty могут быть отображены или использованы как аргументы функций и модификаторов, внутри выражений условных операторов и т.д. Для вывода значения переменной надо просто указать между разделителями имя переменной.
Переменные, установленные в PHPПеременные, установленные в PHP, употребляются со знаком доллар $ перед ним. Переменные, установленные в шаблоне с помощью функции assign употребляются аналогичным образом. Установленные переменные
Ассоциативные массивыЧтобы использовать переменную из ассоциативного массива, надо указать ключ элемента после знака '.' (точка). Доступ к переменным ассоциативного массива
Индексированные массивыМожно использовать переменную из массива по его индексу. Синтаксис аналогичен PHP. Доступ к элементу массива по его индексу
Доступ к свойствам объекта
Переменные файлов конфигурацииДля использования переменных, полученных из файлов конфигураии, необходимо заключить их имя между знаками # или через переменную $smarty.config. Для употребления их в качестве внедренныых переменных можно использовать только второй способ. Переменные из файлов конфигурации foo.conf:
index.tpl:
|