Документация Smarty


Глава 5. Модификаторы переменных

Модификаторы переменных могут быть прмменены к переменным, пользовательским функциям или строкам. Для их применения надо после модифицируемого значения указать символ | (вертикальная черта) и название модификатора. Так же модификаторы могут принимать параметры, которые влияют на их поведение. Эти параметры следуют за названием модификатора и разделяются : (двоеточием). Кроме того, все функции PHP могут быть использованы в качестве модификаторов (об этом дальше) и модификаторы можно комбинировать.

Пример 5-1. Примеры модификаторов

{* применение модификатора к переменной *}
{$title|upper}

{* модификатор с параметрами *}
{$title|truncate:40:'...'}

{* применение модификатора к аргументу функции *}
{html_table loop=$myvar|upper}

{* с параметрами *}
{html_table loop=$myvar|truncate:40:'...'}

{* применение модификатора к строке *}
{'foobar'|upper}

{* использование date_format для форматирования текущей даты *}
{$smarty.now|date_format:"%Y/%m/%d"}

{* применение модификатора к функции *}
{mailto|upper address='[email protected]'}

{* использование функции PHP str_repeat *}
{'='|str_repeat:80}

{* функция PHP count *}
{$myArray|@count}

{* функция PHP shuffle, применяемая к IP адресу сервера *}
{$smarty.server.SERVER_ADDR|shuffle}

(* это приведет в верхний регистр букв и обрежет пробелы у всех элементов массива *}
<select name="name_id">
    {html_options output=$myArray|upper|truncate:20}
</select>

  • Если модификатор применяется к переменной-массиву, то он будет применен к каждому элементу массива. Если же требуется применить модификатор к массиву, как к переменной, то необходимо перед именем модификатора указать символ @.

    Пример: {$articleTitle|@count} - выведет количество елементов в массиве $articleTitle используя стандартную функцию PHP count() в качестве модификатора.

  • Модификаторы автоматически загружаются из директории $plugins_dir или могут быть явно зарегистрированы при помощи функции register_modifier(); это удобно для использования функции как в PHP-коде, так и в шаблоне.

    Любая PHP-функция может быть использована в качестве модификатора. Тем не менее, использование PHP-функций в качестве модификаторов имеет две маленькие "ловушки":

    • Во-первых, иногда порядок аргументов функции не самый удобный. Форматирование $foo при помощи {"%2.f"|sprintf:$float} - это рабочий, но не совсем удобный вариант. Больше подойдет {$float|string_format:"%2.f"}, который предлагает дистрибутив Smarty).

    • Во-вторых, в случае включения $security, все PHP-функции, которые будут использованы как модификаторы, должны быть объявлены "безопасными" в элементе MODIFIER_FUNCS массива $security_settings.

См. также register_modifier(), Комбинирование модификаторов и Плагины - расширение функциональности Smarty.

capitalize

Преобразовывает первые буквы каждого в переменной слова в заглавные.

Позиция параметраТипОбязателенПо умолчаниюОписание
1booleanНетfalseЭтот параметр определяет, распространяется ли действие модификатора на слова с цифрами

Пример 5-2. capitalize

<?php

$smarty
->assign('articleTitle''next x-men film, x3, delayed.');

?>

Шаблон:

{$articleTitle}
{$articleTitle|capitalize}
{$articleTitle|capitalize:true}

Результат обработки:

next x-men film, x3, delayed.
Next X-Men Film, x3, Delayed.
Next X-Men Film, X3, Delayed.

См. также lower и upper

SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…

Linux Optimization

Размещена 30 июля 2012 года

Prelink

читать далее…