include_phpNome do AtributoTipoObrigatórioPadrãoDescriçãofilestringSimn/aO nome do arquivo php a incluironcebooleanNãotrueQuando incluir ou não o arquivo php mais de uma vez se
incluído várias vezesassignstringNãon/aO nome da variável
que receberá a saída do arquivo phpNota Técnica
include_php está quase sendo retirado do Smarty, você pode obter a mesma funcionalidade
usando uma função customizada em um template. A única razão para usar o include_php é
se você realmente precisar deixar função php fora do diretório de plugin ou código da
sua aplicação. Veja a seção
templates componentizados
para mais detalhes.
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 diretório especificado na variável $trusted_dir. A tag include_php
deve ter o atributo "file", o qual contém o caminho para o arquivo php
incluído, pode ser um camiho tanto absoluto ou relativo a $trusted_dir.
include_php é um bom meio de manipular templates componentizados,
e manter o código PHP separado dos arquivos de template. Digamos
que você tenha um template que mostre a navegação do seu site, o qual
é preenchido 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
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="/caminho/para/load_nav.php"}
{foreach item="curr_section" from=$sections}
{$curr_section.name}
{/foreach}
]]>