Capítulo 7. Funciones Integradas

Tabla de contenidos
capture
config_load
{foreach},{foreachelse}
include
{include_php}
insert
if,elseif,else
{ldelim},{rdelim}
literal
{php}
section,sectionelse
{strip}

Smarty cuenta con varias funciones integradas. Las funciones Integradas forman parte del lenguaje del template. Usted no puede crear funciones personalizadas con el mismo nombre, ni puede modificar las funciones integradas.

capture

Nombre del AtributoTipoRequeridoDefaultDescripción
namestringnodefaultEl nombre del bloque capturado
assignstringNon/aEl nombre de la variable para dar valor a la salida capturada

{capture} es usado para recolectar toda la salida del template en una variable en lugar de mostrarla. Cualquier contenido entre {capture name="foo"} y {/capture} es recoletado en una variable especificada y el atributo name. El contenido capturado puede ser usado en el template a partir de la variable especial $smarty.capture.foo en donde foo es el valor pasado para el atributo name. Si usted no pasa un atributo name, entonces será usado "default". Todos lo comandos {capture} deben estar entre {/capture}. Usted puede anidar(colocar uno dentro de otro) comandos capture.

Nota Tecnica: Smarty 1.4.0 - 1.4.4 coloca el contenido capturado dentro de la variable llamada $return. A partir de 1.4.5, este funcionamento fue cambiado para usar el atributo name, entonces en consecuencia actualice sus templates.

Atención

Tenga cuidado cuando capture la salida del comando {insert}. Si tuviera activo el cache y tuviera comandos {insert} y usted espera que funcione con contenido de cache, no se capturara este contenido.

Ejemplo 7-1. capturando contenido de template

{* no queremos imprimir la fila de la tabla a menos que exista
    contenido para desplegar *}
{capture name=banner}
{include file="get_banner.tpl"}
{/capture}
{if $smarty.capture.banner ne ""}
	<tr>
		<td>
			{$smarty.capture.banner}
		</td>
	</tr>
{/if}

Ver También $smarty.capture, {eval}, {fetch}, fetch() y {assign}.