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

Содержание
capitalize
cat
count_characters
count_paragraphs
count_sentences
count_words
date_format
default
escape
indent
lower
nl2br
regex_replace
replace
spacify
string_format
strip
strip_tags
truncate
upper
wordwrap

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

Пример 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="me@domain.dom"}

Если модификатор применяется к переменной-массиву, то он будет применен к каждому элементу массива. Если же требуется применить модификатор к массиву, как к переменной, то необходимо перед именем модификатора указать символ @. Пример: {$articleTitle|@count} выведет количество елементов в массиве $articleTitle.

Модификаторы могут автоматически загружаться из вашей директории $plugins_dir (см. также: Соглашение об именах) или могут регистрироваться явно (см.: register_modifier).

К тому же, любая PHP-функция может быть явно использована в качестве модификатора. (Предыдущий пример с @count на самом деле использует функцию PHP, а не модификатор Smarty). Использование PHP-функций в качестве модификаторов имеет две маленькие "ловушки": Во-первых, иногда порядок аргументов функции не самый удобный ({"%2.f"|sprintf:$float} - это рабочий, но не совсем удобный вариант. Больше подойдет {$float|string_format:"%2.f"}, который обеспечивается дистрибутивом Smarty). Во-вторых, в случае включения $security, все PHP-функции, которые будут использованы как модификаторы, должны быть объявлены "безопасными" в массиве $security_settings['MODIFIER_FUNCS'].

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

capitalize

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

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

Пример 5-2. capitalize

<?php

$smarty 
= new Smarty;
$smarty->assign('articleTitle''next x-men film, x3, delayed.');
$smarty->display('index.tpl');

?>

Шаблон index.tpl:

{$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


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ