mirror of
https://github.com/smarty-php/smarty.git
synced 2025-11-03 13:51:36 +01:00
148 lines
6.4 KiB
XML
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" => "12345","sid" => "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
|
|
-->
|