Files
smarty/docs/es/designers/language-builtin-functions/language-function-insert.xml
2005-11-08 23:37:29 +00:00

148 lines
6.4 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.insert">
<title>insert</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>name</entry>
<entry>string</entry>
<entry>Si</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>El nombre de la función insert(insert_name)</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>El nombre de la variable del template que recibirá la
salida</entry>
</row>
<row>
<entry>script</entry>
<entry>string</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>El nombre de un php que será incluido antes que la
función insert sea llamada </entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>[var type]</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variable para pasar a la función insert</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
La etiqueta funciona parecido a las etiquetas <link
linkend="language.function.include">{include}</link>, excepto
que las etiquetas insert no van para el cache cuando
<link linkend="caching">caching</link> esta activado.
Esta sera executada a cada invocación del template.
</para>
<para>
Digamos que usted tiene un template con un banner en la parte de arriba
de la pagina. El banner puede contener cualquier mezcla de HTML, imagenes,
flash, etc. Así nosotros no podemos usar una liga(link) estatica aquí,
y nosotros no queremos que este el contenido oculto con la pagina.
Aquí vemos la etiqueta {insert}: el template conoce los valores
#banner_location_id# y #site_id# (obtenidos de un <link
linkend="config.files">archivo de configuración</link>),
y necesita llamar una función para obtener el contenido del banner.
</para>
<example>
<title>función {insert}</title>
<programlisting>
{* ejemplo de traer un banner *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}
</programlisting>
</example>
<para>
En este ejemplo, nosotros estamos usando el nombre "getBanner"
y pasando los parámetros #banner_location_id# y #site_id#.
El Smarty lo buscara en la función llamada insert_getBanner()
en su aplicación PHP, pasando los valores de #banner_location_id#
y #site_id# como primer argumento en una matriz asociativa.
Todos los nombres de las funciones insert en su aplicación deben
ser precedidas por "insert_" para prevenir posibles problemas con
nombres de funciones repetidos. Su función insert_getBanner() debe
hacer algo con los valores pasados y retornar los resultados.
Estos resultados son mostrados en el template en lugar de la
etiqueta insert. En este ejemplo, el Smarty llamara esta función:
insert_getBanner(array("lid" =&#62; "12345","sid" =&#62; "67890")); y
mostrara el resultado retornado en el lugar de la etiqueta insert.
</para>
<para>
Si usted proporciona el atributo "assign", la salida de la etiqueta
{insert} será dada a esta variable en vez de ser una salida en el template.
Nota: definir la salida a una variable no es util cuando el <link
linkend="variable.caching">cache</link> esta habilitado.
</para>
<para>
Si usted proporciona el atributo "script", este script php será
incluido (solo una vez) antes de la ejecución de la función {insert}.
Este es el caso donde la función insert no exista todavia, y el
script php debe ser incluido antes para que pueda funcionar.
La ruta puede ser absuluta o relativa a <link
linkend="variable.trusted.dir">$trusted_dir</link>.
Cuando <link linkend="variable.security">la seguridad esta activada</link>,
el script debe estar en <link linkend="variable.trusted.dir">$trusted_dir</link>.
</para>
<para>
El objeto Smarty es pasado como segundo argumento. De este modo
puede referenciar y modificar información del objeto Smarty dentro
de la función.
</para>
<note>
<title>Nota Tecnica</title>
<para>
Es posible tener partes del template fuera de la cache.
Si usted tuviera <link linkend="caching">caching</link>
activado, la etiqueta insert no podra heredar por la cache.
Esta sera ejecutada dinámicamente cada vez que la pagina
sea creada, igual con paginas en cache. Esto funciona bien
para cosas como banners, encuestas, clima, busqueda de
resultados, areas de opinión de usuario, etc.
</para>
</note>
</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
-->