insert

Nombre del AtributoTipoRequeridoDefaultDescripción
namestringSin/aEl nombre de la función insert(insert_name)
assignstringNon/aEl nombre de la variable del template que recibirá la salida
scriptstringNon/aEl nombre de un php que será incluido antes que la función insert sea llamada
[var ...][var type]Non/aVariable para pasar a la función insert

La etiqueta funciona parecido a las etiquetas {include}, excepto que las etiquetas insert no van para el cache cuando caching esta activado. Esta sera executada a cada invocación del template.

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 archivo de configuración), y necesita llamar una función para obtener el contenido del banner.

Ejemplo 7-12. función {insert}

{* ejemplo de traer un banner *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}

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.

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 cache esta habilitado.

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 $trusted_dir. Cuando la seguridad esta activada, el script debe estar en $trusted_dir.

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.

Nota Tecnica: Es posible tener partes del template fuera de la cache. Si usted tuviera caching 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.