Приднестровская поддержка XOOPS
Внутри шаблона после названия переменной через символ "|" можно указать один или несколько модификаторов. Эти модификаторы позволяют изменить данные перед их вставкой в шаблон. Например, с помощью модификаторов upper и lower можно изменить регистр символов. В Smarty доступны следующие модификаторы переменных:
□ upper заменяет все символы строки соответствующими прописными буквами:
$smarty->assign('str', 'строка в нижнем регистре');
...
{$str|upper} {* Выведет: СТРОКА В НИЖНЕМ РЕГИСТРЕ *}
□ lower заменяет все символы строки соответствующими строчными буквами:
$smarty->assign('str', 'СТРОКА В ВЕРХНЕМ РЕГИСТРЕ');
...
{$str|lower} {* Выведет: строка в верхнем регистре *}
□ capitalize делает первые символы всех слов прописными:
$smarty->assign('str', 'строка в нижнем регистре');
...
{$str|capitalize} {* Выведет: Строка В Нижнем Регистре *}
□ cat добавляет указанный фрагмент в конец строки:
$smarty->assign('str', 'строка');
...
{$str|cat:" добавленный фрагмент"}
{* Выведет: строка добавленный фрагмент *}
□ count_characters возвращает количество символов в строке. Если в качестве значения указать true, то при подсчете будут учитываться пробелы:
$smarty->assign('str', 'строка с пробелами');
...
{$str|count_characters} {* Выведет: 16 *}
{$str|count_characters:true} {* Выведет: 18 *}
□ count_paragraphs возвращает количество не пустых строк:
$smarty->assign('str', "строка1\nстрока2\n\nстрока3");
...
{$str|count_paragraphs} {* Выведет: 3 *}
□ count_sentences возвращает количество предложений в строке:
$smarty->assign('str', "Это предложение 1. Предложение 2.");
...
{$str|count_sentences} {* Выведет: 2 *}
□ count_words возвращает количество слов в строке:
$smarty->assign('str', 'строка с пробелами');
...
{$str|count_words} {* Выведет: 3 *}
□ date_format форматирует дату согласно указанному шаблону. В строке формата можно указать специальные символы, которые применяются в функции strftime (). Пример:
setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251");
$smarty->assign('d', time());
...
{$d|date_format} {* Выведет: ноя 17, 2009 *}
{$d|date_format:"%d.%m.%Y"} {* Выведет: 17.11.2009 *}
{$smarty.now|date_format:"%d.%m.%Y"} {* Выведет: 17.11.2009 *}
□ default позволяет указать значение по умолчанию, если переменная не определена или пустая:
$smarty->assign('var1', '');
$smarty->assign('var2', '5');
...
{$var1|default:"Значение по умолчанию"}
{* Выведет: Значение по умолчанию *}
{$var2|default:"Значение по умолчанию"} {* Выведет: 5 *}
□ escape кодирует или экранирует спецсимволы в строке. В первом параметре могут быть указаны следующие значения: "html", "htmlall", "url", "urlpathinfo", "quotes", "hex", "hexentity", "javascript", "mail".. Во втором параметре задается кодировка. Пример:
$smarty->assign('str', 'абв"<>\'?');
...
{$str|escape:"html"} {* Выведет: абв"<>'? *}
{$str|escape:"htmlall":"cp1251"}
{* Выведет: абв"<>'? *}
{$str|escape:"url"} {* Выведет: %E0%E1%E2%22%3C%3E%27%3F *}
{$str|escape:"hex"} {* Выведет: %e0%e1%e2%22%3c%3e%27%3f *}
{$str|escape:"javascript"} {* Выведет: абв"<>\'? *}
□ indent создает отступы в начале каждой строки. В первом параметре можно указать количество повторений, а во втором — символы, которые будут повторяться. По умолчанию пробел повторяется четыре раза.
Пример:
$smarty->assign('str', "Строка 1\nСтрока 2");
...
{$str|indent}
{* Выведет:
Строка 1
Строка 2
*}
{$str|indent:3:" "}
{* Выведет:
Строка 1
Строка 2
*}
□ nl2br добавляет перед всеми символами новой строки (\n) тег <br />:
$smarty->assign('str', "Строка 1\nСтрока 2\nСтрока 3");
...
{$str|nl2br}
{* Выведет:
Строка 1<br />
Строка 2<br />
Строка 3
*}
□ replace производит замену в строке. Эквивалент РНР-функции str_repiace () (см. разд. 5.15.4). В первом параметре указывается искомая строка, а во втором — строка для замены:
$smarty->assign('str', "Привет, Вася");
...
{$str|replace:"Вася":"Петя"} {* Выведет: Привет, Петя *}
□ regex_repiace производит замену в строке с помощью регулярных выражений. Эквивалент РНР-функции preg_repiace () . В первом параметре указывается регулярное выражение, а во втором — строка для замены. Удалим все пробельные символы в начале и конце строки:
$smarty->assign('str', " \t Строка \r\n ");
...
{$str|regex_replace:"/(^\s+)|(\s+$)/s":""}
{* Выведет: "Строка" *}
□ spacify вставляет указанный фрагмент между символами в строке. По умолчанию вставляется пробел:
$smarty->assign('str', 'Строка с пробелами');
...
{$str|spacify}
{* Выведет: С т р о к а с п р о б е л а м и *}
{$str|spacify:"-"}
{* Выведет: С-т-р-о-к-а- -с- -п-р-о-б-е-л-а-м-и *}
□ string_format производит форматирование строки:
$smarty->assign('str', 1256.5684);
...
{$str|string_format:"%.2f"} {* Выведет: 1256.57 *}
□ strip производит замену нескольких (идущих подряд) пробельных символов на пробел или указанный фрагмент:
$smarty->assign('str', "Строка \n\t с \r пробелами");
...
{$str|strip} {* Выведет: Строка с пробелами *}
{$str|strip:" "}
{* Выведет: Строка с пробелами *}
□ strip_tags удаляет из строки все HTML-тети. Если в качестве параметра указать значение true (значение по умолчанию), то теги будут заменяться на пробел, а если false — то никакой символ вставляться вместо тегов не будет:
$smarty->assign('str', "'<b>Строка</b>'");
...
{$str|strip_tags} {* Выведет: ' Строка ' *}
{$str|strip_tags:false} {* Выведет: 'Строка' *}
□ truncate обрезает строку до определенной длины. В первом параметре указывается максимальная длина строки (по умолчанию 80 символов). Во втором параметре можно задать фрагмент, который будет добавлен к обрезанной строке (но умолчанию ". . ."). Если в третьем параметре указать значение false (значение по умолчанию), то строка будет обрезана между словами, а если true — то будет строго учитываться длина строки. Если в четвертом параметре указать значение false (значение по умолчанию), то строка будет обрезана в конце, а если true — то в середине.
Пример:
$smarty->assign('str', 'Это очень длинная строка'); ... {$str|truncate:15} {* Выведет: Это очень... *} {$str|truncate:15:"...":true} {* Выведет: Это очень дл... *} {$str|truncate:15:"...":false:true} {* Выведет: Это оч...строка *}
□ wordwrap позволяет разбить длинный текст на строки указанной длины. В первом параметре указывается количество символов, после которого вставляется символ новой строки (по умолчанию 80 символов). Во втором параметре задается фрагмент, который будет вставлен (по умолчанию "\п"). Если в третьем параметре указать значение false (значение по умолчанию), то перевод строки будет вставляться между словами, а если true — то будет строго учитываться длина фрагмента. Пример:
$smarty->assign('str', "Очень длинная строка");
...
{$str|wordwrap:5}
{* Выведет:
Очень
длинная
строка
*}
{$str|wordwrap:5:"<br>":true}
{* Выведет: Очень<br>длинн<br>ая<br>строк<br>а *}
Отправитель | Нити |
---|
9 пользователь(ей) активно (5 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 9 далее... |