Выдержка из документации по Smarty

По работе нужно было познакомиться со Smarty. Почитав документацию я сделал для себя маленькую выдержку. В основном в ней содержатся полезности для дизайнеров.

Каждая из них имеет краткое описание и ссылку на web-документацию.

Модификаторы переменных

date_format

* Форматирует дату согласно указанному формату strftime(). Даты могут быть переданы Smarty в виде временных меток unix, временных меток mysql или в виде любой строки, содержащей день, месяц и год, которую может обработать функция strtotime(). Дизайнер могут использовать date_format для получения полного контроля над форматированием даты. Если дата, переданная в date_format, пуста и второй аргумент передан, он будет использоваться в качестве даты для форматирования.

default

* Используется для установки значения по умолчанию для переменной. Если переменная не установлена или является пустой строкой, указанное значение по умолчанию будет подставлено вместо неё.

escape

* Используется для кодирования / экранирования спецсимволов по алгоритмам экранирования HTML, URL’ов, одиночных кавычек, hex-экранирования, hex-сущностей, javascript и экранирования почтовых адресов. По умолчанию активирован режим экранирования HTML.

lower

* Переводит строку в нижний регистр.

upper

* Переводит строку в верхний регистр. Является эквивалентом функции PHP strtoupper().

nl2br

* Превращает каждый перевод строки в тэг
в указанной переменной. Это эквивалент функции PHP nl2br().

regex_replace

* Поиск и замена при помощи регулярного выражения в переменной. Используйте синтаксис из руководства к функции PHP preg_replace().

replace

* Простой поиск и замена в переменной. Это эквивалент функции PHP str_replace().

spacify

* spacify is a way to insert a space between every character of a variable. You can optionally pass a different character (or string) to insert.

string_format

* Этот модификатор используется для форматирования строк, таких как десятичные числа и т.д. Используйте синтаксис от sprintf() для форматирования.

strip_tags

* Удаляет тэги разметки. Грубо говоря, всё, что находится между < и >, включительно.

truncate

* Обрезает переменную до определенной длинны, по умолчанию — 80 символов. В качестве необязательного второго параметра, вы можете передать строку текста, которая будет отображатся в конце обрезанной переменной. Символы этой строки не включаются в общую длинну обрезаемой строки. По умолчанию, truncate попытается обрезать строку в промежутке между словами. Если вы хотите обрезать строку строго на указаной длинне, передайте в третий необязательный параметр значение true.

Встроенные функции

capture

* {capture} используется для того, чтобы собрать результат обработки части шаблона между тэгами в какую-то переменную, вместо того, чтобы вывести результат браузеру. Любое содержимое между {capture name=’foo’} и {/capture} сохраняется в переменную, указанную в атрибуте name.

* Захваченные данные могут в дальнейшем использоваться в шаблоне при помощи специальной переменной $smarty.capture.foo, где «foo» — значение, переданное атрибуту name. Если атрибут name не указан, то используется «default».

* Команда capture поддерживает вложенность.

{config_load}

* {config_load} используется для загрузки конфигурационных переменных (#variable#) из конфигурационных файлов в шаблон.

{foreach},{foreachelse}

* Циклы {foreach} являются альтернативой циклам {section}. {foreach} используется для прохода по единственному ассоциативному массиву. Синтаксис {foreach} намного проще синтаксиса {section}, но с другой стороны его можно использовать только для одного массива. Каждый тэг {foreach} должен иметь пару {/foreach}. Обязательными параметрами являются from и item. Имя цикла {foreach} может быть любым, состоящим из букв, цифр и знаков подчеркивания. Циклы {foreach} могут быть вложенными и имена вложенных {foreach} должны быть уникакльными между собой. Параметр from (обычно — массив значений) определяет количество итераций цикла {foreach}. {foreachelse} выполняется в том случае, если параметр from не содержит значений.

{if},{elseif},{else}

* Конструкция {if} в Smarty такая же гибкая, как и конструкция if в PHP, только с несколькими дополнительными возможностями для шаблонов. Каждый тэг {if} должен иметь пару {/if}. {else} и {elseif} так же допустимы. Досутпны все квалификаторы и функции из PHP, такие как ||, or, &&, and, is_array() и т.д.

* Если $security включена, то массив IF_FUNCS в массиве $security_settings.

* Ниже следует список распознаваемых квалификаторов, которые должны быть отделены от окружающих элементов пробелами. Обратите внимания, что объекты в [квадратных скобках] являются необязательными. Иногда указаны эквиваленты в PHP.

{literal}

* Тэги {literal} позволяют воспринимать блоки данных буквально. Обычно они используются вместе с javascript или таблицами стилей, в которых фигурные скобки конфликтуют с синтаксисом разделителей. Весь текст внутри тэгов {literal}{/literal} не интерпретируется, а выводится «как есть». Если вам нужно вставить тэги шаблонов в блок {literal}, вам следует пойти по другому пути и использовать {ldelim}{rdelim} для экранирования отдельных разделителей.

{section},{sectionelse}

* Секции используются для обхода массивов данных (так же, как и {foreach}). Каждый тэг {section} должен иметь пару {/section}. Обязательными параметрами являются name и loop. Имя цикла {section} может быть любым, состоящим из букв, цифр и знаков подчеркивания. Циклы {section} могут быть вложенными и имена вложенных {section} должны быть уникакльными между собой. Переменная loop (обычно — массив значений) определяет количество итераций цикла. При печати переменных внутри секции, имя секции должно быть указано рядом с именем переменной внутри квадратных скобок []. {sectionelse} выполняется в том случае, если параметр loop не содержит значений.

{strip}

* Часто вебдизайнеры сталкиваются с проблемой, что пробелы и переносы строк влияют на отображение HTML в броузере («фишки» броузера), то есть может понадобится склеить все тэги в шаблоне вместе, чтобы получить желаемый результат. Но в результате получается нечитаемый или трудноредактируемый шаблон.

* В выводимом тексте, заключенном между тэгами {strip} и {/strip}, удаляются повторные пробелы и переносы строк, перед отображением. Так вы можете сохранив шаблон читаемым не волноваться насчет лишних пробелов.

Пользовательские Функции

{cycle}

* {cycle} используется для прохода через множество значений. С его помощью можно легко реализовать чередование двух или более цветов в таблице или пройтись циклом по массиву.

{debug}

* {debug} выводит консоль отладки. Это работает независимо от значения опции debug. Так как этот тэг обрабатывается в процесе выполнения, то возможно вывести только присвоенные переменные, но не используемые шаблоны. Но вы видите все переменные, доступные в области видимости текущего шаблона.

{html_checkboxes}

* {html_checkboxes} является пользовательской функцией, которая создает группу флажков в HTML по указанной информации. Также она обеспечивает отметку флажков по умолчанию. Параметры values и output являются обязательными, если не указан атрибут options. Весь вывод идет в формате XHTML.

{html_image}

* {html_image} является пользовательской функцией, которая создает HTML-тэги для изображений. Высота и ширина автоматически вычислаются из файла изображения, если они не указаны явно.

{html_options}

* {html_options} является пользовательской функцией, которая создает группу HTML-тэгов option по указанной информации. Также она обеспечивает выбор элемента по умолчанию. Параметры values и output являются обязательными, если не указан атрибут options.

{html_radios}

* {html_radios} является пользовательской функцией, которая создает группу радиокнопок в HTML по указанной информации. Также она обеспечивает выбор радиокнопки по умолчанию. Параметры values и output являются обязательными, если не указан атрибут options. Весь вывод идет в формате XHTML.

{html_select_date}

* {html_select_date} является пользовательской функцией, которая создает выпадающее меню для выбора даты. Она может отображать поля для года, месяца и дня.

{html_select_time}

* {html_select_time} является пользовательской функцией, которая создает выпадающее меню для выбора времени. Она может отображать поля для часа, минуты, секунды и меридиана.

{html_table}

* {html_table} является пользовательской функцией, которая распечатывает массив данных в HTML-тэг table. Атрибут cols указывает, сколько в таблице будет колонок. Атрибуты table_attr, tr_attr и td_attr определяют атрибуты соответствующих элементов таблицы — тэгов table, tr и td. Если параметры tr_attr или td_attr являются массивами, их значения будут использоваться циклически. trailpad — это значение, помещаемое в пустые ячейки последней строки, если такие будут.

{mailto}

* {mailto} автоматически создает ссылки «mailto:» и опционально кодирует их. Кодирование e-mail’ов на вашем сайте усложняет их обнаружение автоматическими программами-анализаторами и является элементарным способом защиты от спама.

{math}

* {math} позволяет дизайнерам шаблонов проводить математические вычисления в шаблоне. Любые числовые переменные шаблона могут быть использованы в уравнениях, и результат будет выведен на месте этого тега. Переменные, используемые в уравнении, передаются в виде параметров, которые могут быть переменными шаблона или статическими значениями. +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans и tan являются доступными операторами. Обратитесь к документации PHP для получения дополнительной информации по этим математическим функциям.

{textformat}

это блоковая функция, используемая для форматирования текста. Проще говоря, она убирает лишние пробелы и спецсимволы, а так же форматирует параграфы добавляя разрывы строк и отступы.
Вы можете указать параметры явно, либо использовать предустановленный стиль. На данный момент, единственным таким стилем является «email».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *