Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

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

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

Example 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='smarty@example.com'}

{* использование функции 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

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

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

Example 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

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors