Block Functionsvoid smarty_block_namearray $paramsmixed $contentobject &$smartyboolean &$repeat
Las funciones de bloque son funciones de forma: {func} .. {/func}.
En otras palabras, estas encapsulan un bloque del template y operan
el contenido de este bloque. Las funciones de bloque toman precedencia
sobre las funciones habituales con el mismo nombre, es decir, usted no
puede tener ambas, las funciones habituales {func} y las funciones de
bloque {func} .. {/func}.
Por default la implementación de su función es llamada dos
veces por el Smarty: una vez por la etiqueta de apertura, y
la otra por la etiqueta de cierre
(vea &$repeat abajo para ver como hacer
cambios a esto).
Solo la etiqueta de apertura de la función de bloque puede tener
atributos. Todos los atributos pasados a las funciones de template
estan contenidos en $params como un arreglo
asociativo. Usted puede accesar a cualquiera de estos valores
directamente, e.g. $params['start'].
Los atributos de la etiqueta de apertura son también son accesibles
a su función cuando se procesa la etiqueta de cierre.
El valor de la variable $content depende de
que si su función es llamada por la etiqueta de cierre o de apertura.
En caso de que la etiqueta sea de apertura, este será
null, si la etiqueta es de cierre el valor será
del contenido del bloque del template. Se debe observar que el bloque
del template ya a sido procesado por el Smarty, asi todo lo que usted
recibirá es la salida del template, no el template original.
El parámetro &$repeat es pasado por
referencia para la función de implementación y proporciona
la posibilidad de controlar cuantas veces será mostrado el bloque.
Por default $repeat es true
en la primera llamada de la block-function (etiqueta de apertura del
bloque) y false en todas las llamadas subsecuentes
a la función de boque (etiqueta de cierre del boque). Cada vez que es
implementada la función retorna con el &$repeat
siendo true, el contenido entre {func} .. {/func} es evaluado y es
implementado a la función es llamada nuevamente con el nuevo contenido
del bloque en el parámetro $content.
Si usted tiene funciones de bloque anidadas, es posible descubrir
cual es el padre de la función de bloque accesando la variable
$smarty->_tag_stack.
Solo hacer un var_dump() sobre ella y la estrutura estara visible.
Vea tambien:
register_block(),
unregister_block().
Función de bloque
]]>