include_phpNombre del AtributoTipoRequeridoDefaultDescripciónfilestringSin/aEl nombre del archivo php a incluironcebooleanNotrueCuando incluir o no el archivo php mas de una vez,
ser incluido varias vecesassignstringNon/aEl nombre de la variable que recibirá la
salida del archivo phpNota técnica
include_php es muy desaprovechado desde Smarty, usted puede
lograr la misma funcionalidad por medio de las funciones de
costumbre del template.
La unica razón para usar include_php es si usted en realidad tiene
la necesidad de poner en cuarentna la funcion de php fuera del
directorio de plugin y su codigo de la aplicación.
Vea un ejemplo
de templates componentizados para detalles.
Las etiquetas include_php son usadas para incluir un script PHP
dentro de su template. Si la seguridad estuviera activada, entonces
el script PHP debe estar localizado en la ruta $trusted_dir.
La etiqueta include_php debe tener el atributo "file", el cual
contiene la ruta del archivo PHP a ser incluido, o el relativo
al $trusted_dir, o una ruta absoluta.
include_php es un buen medio para manipular templates con componentes,
y mantiene el código PHP separado de los archivos del template.
Vamos adecir que usted tenga un template que muestre la navegación de
su sitio, el cual es tirado automáticamente a partir de una base de
datos. Usted puede mantener su lógica de PHP que obtiene los datos en
un directorio separado, e incluirla arriba del template. Ahora usted
puede incluir este template en cualquier lugar sin preocuparse si la
información de la base de datos fue obtenida por la aplicación antes
de usarla.
Por default, los archivos son incluidos solo una vez a un cuando son
incluidos varias veces en el template. Usted puede especificar que este
sea incluido todas la veces con un atributo once.
Definindo como false incluira el script php cada vez que este sea
incluido en el template.
Usted puede opcionalmente pasar el atributo assign,
el cual especificara una variable del template la cual contendra toda la
salida del include_php en vez de mostrarla.
El objeto smarty esta disponible como $this dentro del script php que usted
incluyo.
funcion include_php
load_nav.php
-------------
<?php
// carga variables de una base de datos mysql y defíne esta para el 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
---------
{* ruta absoluta o relativa del $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}