Модификаторы переменных могут быть прмменены к переменным, пользовательским функциям или строкам. Для их применения надо после модифицируемого значения указать символ | (вертикальная черта) и название модификатора. Так же модификаторы могут принимать параметры, которые влияют на их поведение. Эти параметры следуют за названием модификатора и разделяются : (двоеточием).
Если модификатор применяется к переменной-массиву, то он будет применен к каждому элементу массива. Если же требуется применить модификатор к массиву, как к переменной, то необходимо перед именем модификатора указать символ @. Пример: {$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 и модификаторы.
Позиция параметра | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
1 | boolean | Нет | false | Этот параметр определяет, распространяется ли действие модификатора на слова с цифрами |
Первые буквы каждого слова преобразуются в заглавные.
Пример 5-2. capitalize
Шаблон index.tpl:
Результат обработки:
|
Пред. | Начало | След. |
Зарезервированная переменная {$smarty} | Уровень выше | cat |
HIVE: All information for read only. Please respect copyright! |