XOOPS Brasil

 

include_php

Nome do Atributo Tipo Obrigatório 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

Nota 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.

Example 7.9. Função include_php


load_nav.php
-------------

<?php

	// carrega variáveis de um banco de dados mysql e define elas 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="/caminho/para/load_nav.php"}

{foreach item="curr_section" from=$sections}
	<a href="{$curr_section.url}">{$curr_section.name}</a><br>
{/foreach}