include_php
Nome do Atributo
Tipo
Requerido
Padrão
Descrição
file
string
Sim
n/a
O nome do arquivo php a incluir
once
boolean
Não
true
Quando incluir ou não o arquivo php mais de uma vez se
incluído várias vezes
assign
string
Não
n/a
O nome da variável
que receberá a saída do arquivo php
Tags include_php são usadas para incluir um script php no seu template.
Se a segurança estiver ativada, então o script php deve estar localizado
no caminho $trusted_dir. A tag include_php deve ter o atributo
"file", o qual contém o caminho para o arquivo php a ser incluído,
ou relativo a $trusted_dir, ou um caminho absoluto.
include_php é um bom meio de manipular templates com componentes,
e mante o código PHP separado dos arquivos de template. Vamos dizer
que você tenha um template que mostre a navegação do seu site, o qual
é prenchido automaticamente a partir de um banco de dados. Você pode
manter a sua lógica PHP que obtém os dados em um diretório separado,
e inclui-la no topo do template. Agora você pode incluir este template
em qualquer lugar sem se preocupar se a informação do banco de dados foi
obtida antes de usar.
Por padrão, os arquivos php são incluídos apenas uma vez mesmo
se incluídos várias vezes no template. Você pode especificar que ele
seja incluído todas as vezes com o atributo once.
Definindo once para false irá incluir o script php a cada vez que
ele seja incluído no template.
Você pode opcionalmente passar o atributo assign,
o qual irá especificar uma variável de template a qual irá conter
toda a saída de
include_php em vez de mostra-la.
O objeto smarty esta disponível como $this dentro do
script php que você incluiu.
Função include_php
load_nav.php
-------------
<?php
// carrega variáveis de um banco de dados mysql e define ela para o template
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
---------
{* caminho absoluto ou relativo a $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}