По работе нужно было познакомиться со Smarty. Почитав документацию я сделал для себя маленькую выдержку. В основном в ней содержатся полезности для дизайнеров.
Каждая из них имеет краткое описание и ссылку на web-документацию.
Модификаторы переменных
* Форматирует дату согласно указанному формату strftime(). Даты могут быть переданы Smarty в виде временных меток unix, временных меток mysql или в виде любой строки, содержащей день, месяц и год, которую может обработать функция strtotime(). Дизайнер могут использовать date_format для получения полного контроля над форматированием даты. Если дата, переданная в date_format, пуста и второй аргумент передан, он будет использоваться в качестве даты для форматирования.
* Используется для установки значения по умолчанию для переменной. Если переменная не установлена или является пустой строкой, указанное значение по умолчанию будет подставлено вместо неё.
* Используется для кодирования / экранирования спецсимволов по алгоритмам экранирования HTML, URL’ов, одиночных кавычек, hex-экранирования, hex-сущностей, javascript и экранирования почтовых адресов. По умолчанию активирован режим экранирования HTML.
* Переводит строку в нижний регистр.
* Переводит строку в верхний регистр. Является эквивалентом функции PHP strtoupper().
* Превращает каждый перевод строки в тэг
в указанной переменной. Это эквивалент функции PHP nl2br().
* Поиск и замена при помощи регулярного выражения в переменной. Используйте синтаксис из руководства к функции PHP preg_replace().
* Простой поиск и замена в переменной. Это эквивалент функции PHP str_replace().
* 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.
* Этот модификатор используется для форматирования строк, таких как десятичные числа и т.д. Используйте синтаксис от sprintf() для форматирования.
* Удаляет тэги разметки. Грубо говоря, всё, что находится между < и >, включительно.
* Обрезает переменную до определенной длинны, по умолчанию — 80 символов. В качестве необязательного второго параметра, вы можете передать строку текста, которая будет отображатся в конце обрезанной переменной. Символы этой строки не включаются в общую длинну обрезаемой строки. По умолчанию, truncate попытается обрезать строку в промежутке между словами. Если вы хотите обрезать строку строго на указаной длинне, передайте в третий необязательный параметр значение true.
Встроенные функции
* {capture} используется для того, чтобы собрать результат обработки части шаблона между тэгами в какую-то переменную, вместо того, чтобы вывести результат браузеру. Любое содержимое между {capture name=’foo’} и {/capture} сохраняется в переменную, указанную в атрибуте name.
* Захваченные данные могут в дальнейшем использоваться в шаблоне при помощи специальной переменной $smarty.capture.foo, где «foo» — значение, переданное атрибуту name. Если атрибут name не указан, то используется «default».
* Команда capture поддерживает вложенность.
* {config_load} используется для загрузки конфигурационных переменных (#variable#) из конфигурационных файлов в шаблон.
* Циклы {foreach} являются альтернативой циклам {section}. {foreach} используется для прохода по единственному ассоциативному массиву. Синтаксис {foreach} намного проще синтаксиса {section}, но с другой стороны его можно использовать только для одного массива. Каждый тэг {foreach} должен иметь пару {/foreach}. Обязательными параметрами являются from и item. Имя цикла {foreach} может быть любым, состоящим из букв, цифр и знаков подчеркивания. Циклы {foreach} могут быть вложенными и имена вложенных {foreach} должны быть уникакльными между собой. Параметр from (обычно — массив значений) определяет количество итераций цикла {foreach}. {foreachelse} выполняется в том случае, если параметр from не содержит значений.
* Конструкция {if} в Smarty такая же гибкая, как и конструкция if в PHP, только с несколькими дополнительными возможностями для шаблонов. Каждый тэг {if} должен иметь пару {/if}. {else} и {elseif} так же допустимы. Досутпны все квалификаторы и функции из PHP, такие как ||, or, &&, and, is_array() и т.д.
* Если $security включена, то массив IF_FUNCS в массиве $security_settings.
* Ниже следует список распознаваемых квалификаторов, которые должны быть отделены от окружающих элементов пробелами. Обратите внимания, что объекты в [квадратных скобках] являются необязательными. Иногда указаны эквиваленты в PHP.
* Тэги {literal} позволяют воспринимать блоки данных буквально. Обычно они используются вместе с javascript или таблицами стилей, в которых фигурные скобки конфликтуют с синтаксисом разделителей. Весь текст внутри тэгов {literal}{/literal} не интерпретируется, а выводится «как есть». Если вам нужно вставить тэги шаблонов в блок {literal}, вам следует пойти по другому пути и использовать {ldelim}{rdelim} для экранирования отдельных разделителей.
* Секции используются для обхода массивов данных (так же, как и {foreach}). Каждый тэг {section} должен иметь пару {/section}. Обязательными параметрами являются name и loop. Имя цикла {section} может быть любым, состоящим из букв, цифр и знаков подчеркивания. Циклы {section} могут быть вложенными и имена вложенных {section} должны быть уникакльными между собой. Переменная loop (обычно — массив значений) определяет количество итераций цикла. При печати переменных внутри секции, имя секции должно быть указано рядом с именем переменной внутри квадратных скобок []. {sectionelse} выполняется в том случае, если параметр loop не содержит значений.
* Часто вебдизайнеры сталкиваются с проблемой, что пробелы и переносы строк влияют на отображение HTML в броузере («фишки» броузера), то есть может понадобится склеить все тэги в шаблоне вместе, чтобы получить желаемый результат. Но в результате получается нечитаемый или трудноредактируемый шаблон.
* В выводимом тексте, заключенном между тэгами {strip} и {/strip}, удаляются повторные пробелы и переносы строк, перед отображением. Так вы можете сохранив шаблон читаемым не волноваться насчет лишних пробелов.
Пользовательские Функции
* {cycle} используется для прохода через множество значений. С его помощью можно легко реализовать чередование двух или более цветов в таблице или пройтись циклом по массиву.
* {debug} выводит консоль отладки. Это работает независимо от значения опции debug. Так как этот тэг обрабатывается в процесе выполнения, то возможно вывести только присвоенные переменные, но не используемые шаблоны. Но вы видите все переменные, доступные в области видимости текущего шаблона.
* {html_checkboxes} является пользовательской функцией, которая создает группу флажков в HTML по указанной информации. Также она обеспечивает отметку флажков по умолчанию. Параметры values и output являются обязательными, если не указан атрибут options. Весь вывод идет в формате XHTML.
* {html_image} является пользовательской функцией, которая создает HTML-тэги для изображений. Высота и ширина автоматически вычислаются из файла изображения, если они не указаны явно.
* {html_options} является пользовательской функцией, которая создает группу HTML-тэгов option по указанной информации. Также она обеспечивает выбор элемента по умолчанию. Параметры values и output являются обязательными, если не указан атрибут options.
* {html_radios} является пользовательской функцией, которая создает группу радиокнопок в HTML по указанной информации. Также она обеспечивает выбор радиокнопки по умолчанию. Параметры values и output являются обязательными, если не указан атрибут options. Весь вывод идет в формате XHTML.
* {html_select_date} является пользовательской функцией, которая создает выпадающее меню для выбора даты. Она может отображать поля для года, месяца и дня.
* {html_select_time} является пользовательской функцией, которая создает выпадающее меню для выбора времени. Она может отображать поля для часа, минуты, секунды и меридиана.
* {html_table} является пользовательской функцией, которая распечатывает массив данных в HTML-тэг table. Атрибут cols указывает, сколько в таблице будет колонок. Атрибуты table_attr, tr_attr и td_attr определяют атрибуты соответствующих элементов таблицы — тэгов table, tr и td. Если параметры tr_attr или td_attr являются массивами, их значения будут использоваться циклически. trailpad — это значение, помещаемое в пустые ячейки последней строки, если такие будут.
* {mailto} автоматически создает ссылки «mailto:» и опционально кодирует их. Кодирование e-mail’ов на вашем сайте усложняет их обнаружение автоматическими программами-анализаторами и является элементарным способом защиты от спама.
* {math} позволяет дизайнерам шаблонов проводить математические вычисления в шаблоне. Любые числовые переменные шаблона могут быть использованы в уравнениях, и результат будет выведен на месте этого тега. Переменные, используемые в уравнении, передаются в виде параметров, которые могут быть переменными шаблона или статическими значениями. +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans и tan являются доступными операторами. Обратитесь к документации PHP для получения дополнительной информации по этим математическим функциям.
это блоковая функция, используемая для форматирования текста. Проще говоря, она убирает лишние пробелы и спецсимволы, а так же форматирует параграфы добавляя разрывы строк и отступы.
Вы можете указать параметры явно, либо использовать предустановленный стиль. На данный момент, единственным таким стилем является «email».
Добавить комментарий