Документация Smarty
| Документация DHTML | Документация Smarty | SVG/VML Графика и JavaScript
| Документация bash |
Глава 5. Модификаторы переменных
Модификаторы переменных могут быть прмменены к переменным, пользовательским функциям или строкам. Для их применения надо после модифицируемого значения указать символ | (вертикальная черта) и название модификатора. Так же модификаторы могут принимать параметры, которые влияют на их поведение. Эти параметры следуют за названием модификатора и разделяются : (двоеточием). Кроме того, все функции PHP могут быть использованы в качестве модификаторов (об этом дальше) и модификаторы можно комбинировать.
Пример 5-1. Примеры модификаторов
|
Если модификатор применяется к переменной-массиву, то он будет применен к каждому элементу массива. Если же требуется применить модификатор к массиву, как к переменной, то необходимо перед именем модификатора указать символ @.
Пример: {$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.
Пред. | Начало | След. |
Зарезервированная переменная {$smarty} | Уровень выше | cat |