Esta semana estamos trabajando duro en la integración del nuevo diseño de Somflee, poniendo a prueba Earwyn, nuestro framework php en el que hemos basado su desarrollo. En un CMS que te dé todo hecho, es complicado llegar a tener una buena flexibilidad, manteniendo la filosofía de no cargar nada a mano. Es decir, por ejemplo, si en WordPress necesitamos una cabecera diferente (otro diseño, otra estructura, otro contenido) para dos secciones… podremos hacer un plugin, o podremos tocar el código php y mediante la comprobación de en qué sección estamos, mostrar una cosa u otra, pero cargando siempre el fichero header.php.
En nuestro caso, el nuevo diseño contempla 3 tipos de páginas diferentes: la portada (home), las páginas públicas y las páginas privadas. Cada uno de esos 3 grupos tiene su propia estructura, incluyendo capas y estilos ajenos al resto. Earwyn, en su versión anterior, era capaz de cargar de forma automática un estilo asociado al tema visual (theme) activo y un estilo adicional, si existía, asociado al módulo cargado. Aún así, el sistema se quedaba corto, pues no solucionaba el problema de forma eficiente: tener las tres estructuras definidas en el mismo .css podía ser algo caótico, y tenerlo en los estilos del módulo, si varios módulos tenían el mismo tipo de página, habría que repetir los estilos en cada .css.
Para dotar de más flexibilidad a Earwyn, dimos vueltas a lo que antes llamábamos “plantilla base“. Una plantilla base no es otra cosa que una plantilla xhtml, en la que definimos las capas principales del sitio (por ejemplo, cabecera, pie de página, barra de menú lateral, cuerpo…). ¿Y si pudiéramos tener varias plantillas base? Habíamos planteado la pregunta hace algún tiempo, pero hasta estos días no lo hemos dejado completamente operativo.
Sistema de Esquemas o “Schemas“. Con este nuevo nombre identificamos ahora a cada una de esas plantillas base existentes. Volviendo a tocar el núcleo, donde se cargan los archivos de estilos, añadimos la inclusión automática de estilos asociados a Schemas, de tal manera que si en la carpeta de estilos existe un fichero .css con cierta nomenclatura (por ejemplo, base_public.css, si public es el nombre del Schema), Earwyn lo cargará. Además, debido a que un Schema puede necesitar su propia cabecera o pie, el framework incluye, si existen, los estilos (en el caso supuesto, header_public.css y footer_public.css) y plantillas (header_public.html y footer_public.html) en relación. En caso contrario, siempre se tenderá al esquema por defecto, cargando también sus ficheros relacionados. Por último, en el archivo de configuración de módulos, se puede especificar qué Schema seguirá cada uno de ellos, si es diferente al default.
Con todo esto, hemos dado un paso interesante: mayor potencia, mejor gestión del código CSS…. Sin duda el factor más importante, es que nos resulta muy cómodo y práctico. Paralelamente a esta funcionalidad, hemos implementado una mejora en el sistema de idiomas, de tal forma que ahora también se permite la inclusión de un fichero de idioma (donde se definen las variables con los literales del idioma en uso) por cada módulo. Earwyn improved!
Artículos recientes relacionados: