Files
smarty/docs/es/designers/language-builtin-functions/language-function-include-php.xml
2004-10-07 18:50:52 +00:00

143 lines
5.4 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.include.php">
<title>include_php</title>
<informaltable frame="all">
<tgroup cols="5">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Nombre del Atributo</entry>
<entry>Tipo</entry>
<entry>Requerido</entry>
<entry>Default</entry>
<entry>Descripción</entry>
</row>
</thead>
<tbody>
<row>
<entry>file</entry>
<entry>string</entry>
<entry>Si</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>El nombre del archivo php a incluir</entry>
</row>
<row>
<entry>once</entry>
<entry>boolean</entry>
<entry>No</entry>
<entry><emphasis>true</emphasis></entry>
<entry>Cuando incluir o no el archivo php mas de una vez,
ser incluido varias veces</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>El nombre de la variable que recibirá la
salida del archivo php</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<title>Nota técnica</title>
<para>
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 <link linkend="tips.componentized.templates">ejemplo</link>
de templates componentizados para detalles.
</para>
</note>
<para>
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.
</para>
<para>
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.
</para>
<para>
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 <emphasis>once</emphasis>.
Definindo como false incluira el script php cada vez que este sea
incluido en el template.
</para>
<para>
Usted puede opcionalmente pasar el atributo <emphasis>assign</emphasis>,
el cual especificara una variable del template la cual contendra toda la
salida del <emphasis>include_php</emphasis> en vez de mostrarla.
</para>
<para>
El objeto smarty esta disponible como $this dentro del script php que usted
incluyo.
</para>
<example>
<title>funcion include_php</title>
<programlisting>
load_nav.php
-------------
&lt;?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);
?&gt;
index.tpl
---------
{* ruta absoluta o relativa del $trusted_dir *}
{include_php file="/path/to/load_nav.php"}
{foreach item="curr_section" from=$sections}
&lt;a href="{$curr_section.url}"&gt;{$curr_section.name}&lt;/a&gt;&lt;br&gt;
{/foreach}</programlisting>
</example>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->