Документация Smarty
| Документация DHTML | Документация Smarty | SVG/VML Графика и JavaScript
| Документация bash |
Глава 15. Расширенные возможности
Объекты
Smarty позволяет использовать в шаблонах объекты PHP. Существуют два способа их вызова. Первый - зарегистрировать объект для шаблона, затем вызвать его примерно так же, как и пользовательские функции. Второй - назначить объект шаблону и использовать его, как любую другую присвоенную переменную. Первый метод гораздо аккуратнее и безопаснее, так как у зарегистрированного объекта можно ограничить свойства и методы. Но, в тоже время, зарегистрированный объект нельзя использовать в циклах, нельзя помещать в массив объектов, и так далее. Выбор способа за вами, но используйте по возможности первый, чтобы максимально упростить синтаксис шаблона.
В безопасном режиме недоступны приватные методы и функции (имена которых начинаются с "_"). Если существует и метод, и свойство с одинаковыми именами, то будет использован метод.
Вы можете ограничить использование объекта только некоторыми методами и свойствами. Для этого перечислите их в массиве и укажите этот массив третьим параметром при регистрации объекта.
По умолчанию, параметры из шаблона передаются объекту точно так же, как и пользовательской функции. Первым параметром передаётся ассоциативный массив, вторым - объект Smarty. Если вы хотите передавать параметры по одному, как при традиционном обращении с объектами, установите четвёртый параметр вызова в false.
Необязательный пятый параметр вступает в силу только в том случае, если свойство format равно true. Он содержит список методов, которые должны обрабатываться как блоки. Это означает, что в шаблоне у методы будут иметь закрывающие тэги ({foobar->meth2}...{/foobar->meth2}) и параметры методов будут иметь такие же синопсисы, как и параметры для block-function-plugins: $params, $content, &$smarty и &$repeat. Кроме того, они ведут себя так же, как и block-function-plugins.
См. также register_object() и assign()
Пред. | Начало | След. |
Управление кэшированием результатов работы плагинов | Уровень выше | Префильтры |