Definiendo subplantillas en Earwyn

published on Jun 15, 2008 by Eduardo Millán in Earwyn with no comments

La semana pasada publicábamos un post sobre el sistema de plantillas de Earwyn, en el que se comentaba la necesidad de crear plantillas adicionales para definir elementos repetitivos dentro de la misma plantilla. En estos días, este tema ha quedado solventado.

Subplantillas

La forma de solucionarlo ha sido ampliando el parser de plantillas, reconociendo ahora la parte de código perteneciente a una subplantilla definida dentro de la propia plantilla. Es decir, existe una plantilla llamada list.html, ésta podrá contener tanto el código general de la lista como el código que dará formato a cada elemento de la lista, sin necesidad de tener este código aparte en otra plantilla, como se hacía en la anterior versión.

En una misma plantilla se pueden definir ilimitadas subplantillas, asignándolas un nombre. Por ejemplo:

<ul >
[st:list_item]< li class=”mi_clase”>¿elem?</li>[/st]
< /ul>

En el código php del módulo que tiene asociado la plantilla que aloja el código de ejemplo, podríamos cargar la subplantilla con un método, tal que

$wod_engine->set_subtpl(“list_item”);

Y utilizar la subplantilla como si se hubiera definido una plantilla normal, reemplazando el tag y lo presente dentro de él de forma análoga a las variables calculadas:

$wod_engine->add_subtpl(“list_item”, $listado);

De este modo, nos ahorramos todas las plantillas .html que pertenecían a filas de tablas, elementos de listas… ganando mucho en organización tanto de ficheros como de funcionamiento.

Resumiendo

La forma básica del uso de todo esto, sería algo como:

  • Definir cual será la plantilla general que el módulo lleva asociada. (set_template)
  • Calcular el contenido de cada subplantilla en ella (set_subtpl y add_subtpl)
  • Calcular el contenido de la plantilla general
  • Obtener el código xhtml de todo el conjunto (get_xhtml)

Y algo más

En el post anterior, no comentamos que desde las plantillas también es posible llamar a funciones php, encerrándolas entre los símbolos []. Así en muchas ocasiones podemos ahorrar definir y calcular variables mediante ¿? y mostrar el contenido deseado directamente.

Artículos recientes relacionados:


Leave a comment