Overrides (sobreescrituras)

Ya has creado un estilo, cambiado los archivos CSS y la página principal de tu plantilla, ¿y aún no estás contento con el resultado? :-) Entonces ha llegado el momento de hablar de los overrides o "sobreescrituras". En Joomla! existen dos tipos de sobreescrituras: las sobreescrituras de plantilla (template overrides) y las presentacions alternativas (alternative layouts).

NOTA del traductor: tras una interesante discusión entre muchos miembros activos de la comunidad de habla hispana de distintos países, llegamos al acuerdo de que la traducción más adecuada de la palabra "override" sería "sobreescritura". En Joomla, un "override" consiste que crear una copia del archivo original usado para generar la salida HTML, y modificarlo para obtener una nueva salida que sobreescriba a la "original", permitiendo de este modo crear vistas personalizadas sin necesidad de modificar los archivos originales.

Sobreescrituras de plantilla

Imaginemos que quieres cambiar el aspecto de la página de resultados de búsqueda. Un componente como el de búsqueda tiene una plantilla para su aspecto por defecto, que está almacenada en el archivo /components/com_search/views/search/tmpl/default.php. Este archivo hace que la página de resultados de búsqueda tenga el aspecto que tiene. Añade unas cuantas palabras al archivo, guárdalo y verás el resultado inmediatamente. Por ejemplo, añade:

<strong>He cambiado algo :-) </strong>

en la línea 13 y verás lo que ocurre (Figura 1).

cocoate.com/node/6476

Figura 1: Cambios en la salida HTML

El resultado es muy bueno para tu motivación, pues ha sido muy sencillo de conseguir y aparece en todas las páginas. Sin embargo, no es nada bueno para tu reputación, dado que has cambiado el código de un archivo del núcleo, de un archivo original. Tan pronto como actualices Joomla! a la próxima versión, ¡los cambios desaparecerán!

Una alternativa mejor sería usar sobreesccrituras de plantilla en cada plantilla. Copia el archivo que acabas de modificar desde el directorio de tu plantilla a /templates/[nombre_template]/html/com_search/search/default.php y elimina los cambios que realizaste en el original. Podrás comprobar que el resultado al cargar tu sitio web es el mismo, pero entre bastidores lo que ocurre es totalmente diferente, ya que ahora se sobreescribe el archivo original .../default.php con los cambios deseados, sin cambiar el código del arhivo original... ¡bien hecho!

Este sistema fue introducido en el año 2007 con el lanzamiento de Joomla! 1.5, y aún funciona muy bien hoy en la nueva versión.

Presentaciones alternativas

En Joomla 2.5 se ha añadido una mejora a las sobreescrituras llamada presentaciones alternativas. Estoy seguro de que ya has visto el campo Presentación Alternativa en el formulario de edición de artículos, módulos y categorías (Figura 2)

cocoate.com/node/6476

Figura 2: Presentación alternativa en un artículo

¿Para qué necesitamos presentaciones alternativas? Imagina que eres el administrador o webmaster de un sitio que usa una plantilla que tiene 3 presentaciones alternativas para los artículos. A veces se tratará de un 'artículo normal', otras veces querrás que se vea como un producto, y otras veces como la página de un libro. Simplemente tienes que elegir que presentación quieres usar. Suena como una gran funcionalidad, y desde luego que lo es.

La técnica es la misma que con las sobreescrituras de plantilla. Debes crear una carpeta con el mismo nombre del componente o módulo, y una subcarpeta para la vista. Sin embargo, existen dos diferencias:

  1. Obviamente, el nombre del archivo debe ser algo distinto de default.php, ya que ese nombre está reservado para las sobreescrituras de plantilla.
  2. La presentación alternativa no es seleccionada automáticamente.

Además de la presentacióna lternativa, tipos de elementos de menú pueden ser añadidos a la presentación, y las opciones de ese artículo pueden ser controladas definiéndolas en un archivo xml con el mismo nombre que el del archivo de la presentación alternativa (Figura 3).

cocoate.com/node/6476

Figura 3: Tipos de elementos de menú adicionales

La creación de estos archivos no es un tema adecuado para principiantes, pero estoy seguro de que los proveedores de plantillas harán uso de estas nuevas posibilidades muy pronto (Figura 4).

cocoate.com/node/6476

Figura 4: Presentaciones adicionales en un artículo

Comentarios

Muy buen artículo sobre como podemos disponer de varios tipos de vistas para nuestros diseños. Aunque no queda del todo claro el tema de "presentaciones alternativas" , supongo que debemos agregarlas en la ruta templates/mi_template/html/mi_componente/views/archivo.php
¿Es así o me equivoco?
Un saludo cordial y gracias por sus aportes.
Miquel
miadiseño.com.ar/Diseño y desarrollo web basado en Joomla