What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{include_php} достаточно устарела в Smarty, вы можете достичь этой функциональности при помощи собственных функций шаблона. Единственная причина для использования {include_php} - это серьёзная необходимость отделить PHP-функцию от директории plugins или кода вашего приложения. См. примеры составных шаблонов для дополнительной информации.
Имя атрибута | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
file | string | Да | n/a | Имя подключаемого php файла |
once | boolean | Нет | true | Указывает подключать файл или нет, если он уже был однажды подключен |
assign | string | Нет | n/a | Название переменной, которой будет присвоен вывод include_php |
Тэги {include_php} используются для подключения PHP-скрипта в шаблон. Если режим $security включен, то PHP-скрипт должен быть расположен в директории $trusted_dir. Тэг {include_php} должен иметь атрибут "file", который указывает путь к подключаемому PHP-файлу, либо относительный к $trusted_dir, либо абсолютный путь.
По умолчанию, PHP-файлы подключаются только один раз, даже если вызываются несколько раз в шаблоне. Можно указать, что файл должен быть подключен каждый раз, указав атрибут once. Установив once в ложь (false) указывает, что файл должен быть подключен вне зависимости от того, был ли он подключен раньше.
Можно указать опциональный атрибут assign, который указывает имя переменной, которой будет присвоен вывод {include_php}, вместо отображения.
Объект smarty доступен в подключаемом PHP-файле как $this.
Example 7.21. Функция {include_php}
load_nav.php
<?php // загружает переменные из БД MySQL и присваивает их шаблону require_once('MySQL.class.php'); $sql = new MySQL; $sql->query('select * from site_nav_sections order by name',SQL_ALL); $this->assign('sections',$sql->record); ?>
index.tpl
{* абсолютный путь, либо относительный к $trusted_dir *} {include_php file='/path/to/load_nav.php'} {foreach item="curr_section" from=$sections} <a href="{$curr_section.url}">{$curr_section.name}</a><br /> {/foreach}
См. также {include}, {php}, {capture}, Ресурсы и Составные шаблоны