====== Пользовательские функции в языке шаблонов Smarty ======
Smarty содержит несколько пользовательский функциий, которые вы можете использовать в шаблонах.
==== assign ====
assign используется для установки значения переменной в процессе выполнения шаблона.
^Имя аттрибута ^Тип ^Обязателен ^По умолчанию ^Описание ^
|var |строка (string) |Да |n/a |Имя переменной, значение которой будет устанавливаться |
|value |строка (string) |Да |n/a |Устанавливаемое значение |
==== counter ====
counter используется для управления счетчиком. counter запоминает количество итераций. Можно регулировать начало, интервал и направление отсчета, а также указать, выводить ил значение счетчика или нет. Можно запустить несколько счетчиков одновременно, указав уникальное имя для каждого. Если имя счетчика не указано, будет использовано по умолчанию 'default'. Если указан аттрибут "assign", то вывод тэга counter будет присвоен переменной шаблона, вместо отображения.
^Имя аттрибута ^Тип ^Обязателен ^По умолчанию ^Описание ^
|name |строка (string) |Нет |default |Имя счетчика |
|start |number |Нет |1 |Начальное значение счетчика |
|skip |number |Нет |1 |Шаг счетчика |
|direction |строка (string) |Нет |up |Направление (вверх - up/вниз - down) |
|print |логический (boolean) |Нет |true |Выводить значение счетчика или нет |
|assign |строка (string) |Нет |n/a |Имя переменной, которой будет присвоен вывод |
{* инициализируем счетчик *}
{counter start=0 skip=2 print=false}
{counter}
{counter}
{counter}
{counter}
==== cycle ====
Cycle используется для прохода через множество значений. С его помощью можно легко реализовать переключение между двумя и более цветами в таблице, или пройти цикл через массив. Можно проходить через несколько множеств значений одновременно, указав аттрибут name. Имена должны быть уникальными. Можно не отображать данный элемент, установив аттрибут print в ложь (false). Удобно для пропуска значения, без его вывода. Аттрибут advance используется для повтора значения. Если установлен в истина (true), то при следующем вызове cycle будет выведено то же значение. Если указан специальный аттрибут "assign", то вывод cycle присваивается переменной, вместо отображения.
^Имя аттрибута ^Тип ^Обязателен ^По умолчанию ^Описание ^
|name |строка (string) |Нет |default |Название цикла |
|values |mixed |Да |N/A |Значения, по которым будет производиться цикл. Либо список, разделеный запятыми (либо другим указанным разделителем), либо массив значений. |
|print |логический (boolean) |Нет |true |Выводить значение, или нет |
|advance |логический (boolean) |Нет |true |Переключаться или нет на следующее значение |
|delimiter |строка (string) |Нет |, |Разделитель, используемый в аттрибуте values. |
|assign |строка (string) |Нет |n/a |Имя переменной, которой будет присвоен вывод тэга |
{section name=rows loop=$data}
{$data[rows]}
{/section}
==== eval ====
eval используется для обработки переменной, как шаблона. Можно использовать для таких вещей, как хранение шаблонных тэгов/переменных в переменной или в файлах конфигруации. Если указан специальный аттрибут "assign", то вывод тэга eval присваивается переменной, вместо отображения.
Переменные шаблоны обрабатываются так же, как и обычные шаблоны. Они подвластны тем же правилам и ограничениям безопасности.
Переменные шаблоны компилируются при каждом обращении!
^Имя аттрибута ^Тип ^Обязателен ^По умолчанию ^Описание ^
|var |mixed |Да |n/a |Переменная (или строка) для обработки |
|assign |строка (string) |Нет |n/a |Имя переменной, которой будет присвоен вывод |
==== html_checkboxes ====
Пользовательская функция html_checkboxes генерирует группу HTML фложков по указанной информации. Также заботится об флажках, которые выбраны по умолчанию. параметры vslues и output обязательны, если не указан аттрибут options. Весь вывод совместим с XHTML. Все параметры, которые не указаны в списке выводятся в виде пар name/value в каждом созданном тэге .
^Имя аттрибута ^Тип ^Обязателен ^По умолчанию ^Описание ^
|name |строка (string) |Нет |checkbox |Название списка флажков |
|values |массив |Да, если не указан аттрибут options |n/a |Массив значений для флажков |
|output |массив |Да, если не указан аттрибут options |n/a |Массив названий флажков |
|checked |строка (string) |Нет |пусто |Выбранный флажок |
|options |ассоциативный массив |Да, если не указаны аттрибуты values и output |n/a |Ассоциативнй массив значений и названий |
|separator |строка (string) |Нет |пусто |Строка разделяющая каждый флажок |
==== html_options ====
Пользовательская функция html_options генерирует группу html тэгов option по указанной информации. Также заботится о выбранных по умолчанию элементах. Аттрибуты values и output обязательны, если не указан аттрибут options. Если данное значение - массив, то оно будет представлено в виде html OPTGROUP. Рекурсия с OPTGROUP поддерживается. Весь вывод совместим с XHTML. Если указан необязательный аттрибут name , то группа опций заключится в тэг , иначе сгенерируется только группа опций. Все параметры, которые не указаны выше, выводятся в виде пары name/value внутри тэга