| Plantillas en Joomla! 1.5 - Parte 1 |
|
|
|
|
Por Johan Janssens | 28 Octubre 2006 Las plantillas han sido desde siempre uno de los puntos fuertes de Joomla!. La enorme cantidad de plantillas gratuitas y comerciales diseñadas para Joomla! 1.0 son la mejor prueba del éxito del sistema de plantillas de Joomla!. Tras el lanzamiento de la beta hemos recibido numerosas preguntas en los foros sobre los cambios en el sistema de plantillas de Joomla! 1.5 beta. Pese a que la beta está pensada sólo para ser probada y revisada, nos damos cuenta de que los diseñadores necesitan más información para probar de verdad los cambios en las plantillas. En los foros los diseñadores nos han dicho que no podemos pretender que se lean el código para entender el nuevo sistema. ¡Y tienen toda la razón! La próxima semana escribiré en el blog sobre los distintos cambios hechos. Intentaré responder a las múltiples preguntas que la gente ha posteado en los foros. Intentaré también explicar por qué se han cambiado ciertas cosas. En ocasiones, la información será algo técnica, pero creo que es importante que no sólo se comprenda el cómo sino también el porqué. Comencemos... COMPATIBILIDAD HACIA ATRÁS CON 1.0 Antes de entrar en materia hablemos sobre la compatibilidad hacia atrás. El nuevo sistema ha sido diseñado para ser completamente compatible hacia atrás con Joomla! 1.0. Si instala una plantilla de Joomla! 1.0 debe asegurarse de activar el ‘legacy mode’ (modo herencia) en la pestaña del servidor de la configuración global. Este modo carga toda la funcionalidad 1.0 que ha sido descartada en 1.5. Tenga cuidado con los ajustes de los Módulos de Menú comparados con los ajustes predeterminados 1.0.x. En esta primera beta se muestran como una lista, lo cual rompe los menús por ejemplo en la plantilla ‘solarflare’. Cambie a Vertical u Horizontal según se necesite. Esto podría cambiar en la beta 2. Se ha añadido de manera predeterminada un sufijo _menu en los parámetros de los módulos de menú. Esto se eliminará en la próxima beta para mantener la compatibilidad hacia atrás. NOVEDADES EN LA VERSIÓN 1.5 Los cambios del sistema de plantillas de Joomla! 1.5 pueden dividirse en dos categorías. En primer lugar, hay cambios en la forma como se hacían las cosas en Joomla! 1.0; por ejemplo, la nueva manera de cargar los módulos. En segundo lugar hay un conjunto de nuevas características, como parámetros de plantilla…, echemos un vistazo rápido: 1. Cambios en las antiguas formas de trabajar mosCountModules La función mosCountModules ha sido reemplazada por la función $this->countModules y se ha añadido soporte para condiciones. Esto permite a los diseñadores contar fácilmente el número total de módulos en múltiples posiciones de la plantilla con una sola línea de código; por ejemplo, $this->countModules(’user1 + user2′) devolverá el número total de módulos en las posiciones user1 y user2. Inclusión de salidas generadas por el núcleo En Joomla! 1.0 se podían utilizar distintas funciones para incluir las salidas generadas por el núcleo. Todas esas funciones han sido sustituidas por el elemento < jdoc :include ... />. Por ejemplo, se pueden incluir módulos en una determinada posición mediante < jdoc :include type="modules" name="left" />. Carga del editor En Joomla! 1.0 usted debía cargar el editor en sus plantillas. Ahora ya no es necesario. Cuando el sistema procese la cabecera de su plantilla decidirá si el editor debe o no debe ser incluido. 2. Nuevas características Parámetros de plantilla Se pueden usar los parámetros de plantilla para permitir a los administradores controlar la estructura de la plantilla. Funcionan de una manera muy parecida a los parámetros de módulo. Un diseñador de plantillas puede definir configuraciones adicionales para una plantilla en su archivo xml, y el administrador del sitio puede ajustarlas en el administrador de plantillas. Por ejemplo, los administradores pueden cambiar los esquemas de color, elegir entre una maquetación de 2 ó 3 columnas, o elegir la anchura mínima de la plantilla. La plantilla prevalece Las plantillas pueden anular la forma predeterminada de generar las salidas por parte del núcleo. Por ejemplo, usted podría cambiar la manera de representar un artículo y cambiar la estructura de tablas por divs; o puede cambiar una clase o id a su gusto. También se pueden ampliar la paginación y los estilos de módulo. Soporte para múltiples archivos css El gestor de plantillas soporta múltiples archivos css, así que no es necesario incluir toda la css en un único archivo. También hemos cambiado el nombre del archivo css principal a template.css en lugar de template_css.css y hemos añadido soporte para un archivo especial editor.css que es cargado por el editor WYSIWYG en el administrador. ARQUITECTURA DE PLANTILLAS EN LA VERSIÓN 1.5 Para Joomla! 1.5 queríamos separar completamente el código de la salida. Un diseñador de plantillas no debería estar limitado a las posibilidades programadas en el núcleo, debería poder sustituir todo el html generado por los módulos y componentes para adecuarlo a sus necesidades. Para permitir esto Joomla! 1.5 dispone de una solución llamada ‘vista de plantilla’ mediante un patrón Modelo-Vista-Controlador o MVC. La incorporación de este patrón es parte del nuevo entorno de trabajo de Joomla!. Los componentes y módulos desarrollados con esta nueva API (Interfaz de Programación de Aplicaciones) pueden ser sustituidos de manera automática por los diseñadores de plantillas. La arquitectura de Joomla! 1.5 diferencia dos tipos de plantillas: plantillas de sitio y plantillas de extensión. Un plantilla de sitio define el aspecto y manejo de su sitio web, mientras que una plantilla de extensión define cómo se representa un determinado componente o módulo. Las plantillas de sitio pueden anular a las plantillas de extensión. Antes de empezar a construir un primer ejemplo práctico de una plantilla 1.5, creo que es importante explicar el planteamiento de la “vista de plantilla” con más detalle. La siguiente sección puede que sea algo técnica, intente seguirme. Espero que le permita entender mejor las plantillas, motores de plantillas y por qué en Joomla! 1.5 las cosas son como son. VISTAS DE PLANTILLA Una vista de plantilla utiliza una plantilla para ejecutar la parte Vista del patrón Modelo-Vista-Controlador. Una plantilla es un documento típicamente HTML con marcadores incrustados que son sustituidos, manipulados o evaluados mediante un motor API de plantilla para producir un documento de salida. El propósito de una plantilla es aislar el HTML del código del lenguaje de programación en una aplicación web. Hay varias razones para tal separación. El Diseño HTML y la Programación de Aplicaciones son distintas funciones dentro de un equipo de desarrollo de aplicaciones web, representadas a menudo por personas diferentes y en diferentes momentos. Separar el HTML del código proporciona a cada persona su propio fichero sobre el que trabajar. Cuando se diseñó el HTML, no se pretendía que fuera editado directamente. Separar el HTML del código de programación permite al gran grupo de editores WYSIWYG HTML ser usados para editar documentos de plantilla. El simple hecho de separar el HTML del código de programación supone un gran avance hacia el aislamiento de la capa de presentación de una aplicación. Sin embargo, la lógica de presentación complica este aislamiento. La lógica de presentación consiste en requerimientos como “Mostrar el elemento activo del menú en rojo”. Una decisión de diseño clave cuando se usa la Vista de Plantilla es cómo manejar la lógica de presentación. El HTML no se diseñó de manera específica para ser capaz de trabajar con lógica arbitraria (Principio de la Mínima Potencia). Para poder trabajar con lógica de presentación arbitraria, se debe extender el HTML o situar la lógica dentro del programa. Aquí es donde hacen su aparición los motores de plantilla… MOTORES DE PLANTILLA Los motores de plantillas se diseñaron para permitir separar la parte lógica de la presentación de los datos. Los motores de plantilla resuelven dos grandes problemas: cómo conseguir esta separación y cómo separar código PHP “complejo” del HTML. En teoría, esto permite que los diseñadores HTML sin experiencia en PHP puedan modificar el aspecto del sitio sin tener que mirar el código PHP para nada. Los motores de plantilla introducen un nuevo nivel de procesamiento. Los archivos de plantilla no sólo tienen que estar presentes, sino que también deben ser procesados (dependiendo del sistema de plantillas, esto ocurre de distintas formas: expresiones regulares, str_replaces, compilando, etc.). Esta es la razón por la cual han aparecido las pruebas de rendimiento de plantillas. Dado que los motores de plantilla emplean diversos métodos de procesado, algunas son más rápidas y otras más lentas. Así que, básicamente, lo que tenemos ahora es un lenguaje interpretado (PHP) escrito en C usado para la parte lógica. Dentro del código PHP, todavía hay otro lenguaje pseudointerpretado para realizar la lógica de presentación. Algunos motores de plantilla permiten simplemente interpolación de variables y bucles; otros ofrecen condicionales y bucles anidados; algunos incluso una interfaz hacia casi todas las posibilidades de PHP. Aunque patTemplate permite una separación estricta entre la lógica estructural y la de presentación, todavía existen algunos problemas. Básicamente, se limita a proporcionar un interfaz para PHP con nueva sintaxis. Dicho así, parece una tontería. ¿Es realmente más sencillo escribir < pattemplate :tmpl name="row" loop="10"> … que < ? foreach($rows as $row) ... ?> ? Pensamos que no. Para Joomla! 1.5 somos partidarios de usar código PHP como lenguaje de plantillas de elección para la lógica de presentación. No creemos que el código PHP que un diseñador necesita aprender para crear su lógica de presentación será más complejo que aprender la sintaxis de un motor de plantilla. ¿DÓNDE DEJA ESTO A PATTEMPLATE ? patTemplate se eligió originalmente por su consistencia, flexibilidad y sintaxis declarativa xml. Se puede encontrar más información en su viejo hilo de los foros de Mambo. El problema con patTemplate es su rendimiento. No ofrece un mecanismo de compilación decente. Lo habíamos incorporado originalmente en Mambo 4.5.3 y las pruebas de rendimiento mostraron un tremendo incremento en la carga de las páginas. El principal problema de patTemplate es que no puede compilar plantillas en código PHP como, por ejemplo, puede hacer Smarty, lo cual significa que una plantilla necesita ser procesada y representada cada vez que se solicita una página. Como resultado, hemos decidido no usar nunca más patTemplate en el núcleo. La biblioteca patTemplate todavía se incluye en el entorno de trabajo de Joomla! 1.5 por razones de compatibilidad hacia atrás, pero no la consideramos una opción de futuro. Próximamente : ‘Cómo Construir una Plantilla de Sitio en Joomla! 1.5′ Texto Original: 'Templates in Joomla! 1.5 - Part 1', por Johan Janssens (Blog del Desarrollador de Joomla!) |
| < Anterior | Siguiente > |
|---|




