Ultimamente escribo poco; estas últimas semanas no he escrito nada principalmente debido a que he estado colaborando en un proyecto. Se trata de una web sobre libros electrónicos desarrollada integramente con Drupal. No es la primera vez que pruebo Drupal, pero si es mi estreno desarrollando una web entera usando este CMS.
Hasta este momento tenía bastante claro que Drupal era el CMS de elección en proyectos de comunidades de usuarios, donde los participantes tienen un papel fundamental, cuando tenemos distintos perfiles de usuarios con roles y permisos diferenciados. También es la mejor opción, o una de las mejores para blogs (especialmente multi-blogs), foros y, sobre todo, sitios que ofrecen juntas todas estas funcionalidades.
Cuando hablamos de CMSs creo que hay que tener clara una cosa “No existe el CMS perfecto”; pero me gustaría comentar lo que más y lo que menos me gusta de Drupal. Para los drupaleros informo de que he estado trabajando con la versión 5.7.
Instalación y configuración
La instalación y configuración inicial es bastante sencilla para usuarios con una mínima experiencia en estos temas. Básicamente hay que subir los ficheros de Drupal a nuestro servidor, crear una base de datos y un usuario con permisos. Hecho esto no hay más que ejectuar el wizard de instalación.
Lo negativo en este apartado es que para trabajar a fondo con Drupal es necesario utilizar una serie de módulos que no vienen en el núcleo del CMS (al menos en la versión 5.7) pero que son esenciales: cck y views. Si a uno no le explica esto alguien se encontrará realmente perdido.
Diseñando y maquetando, los themes
La primera vez que usé Drupal el principal problema que le encontré fue que era extremadamente difícil implementar un diseño propio. Para empezar era casi obligatorio trabajar con 2 o 3 columnas e ir poniendo ahí los distintos elementos del interfaz (contenidos, menús, autentificación…). Esto ya no es así, ni mucho menos.
Es posible integrar el diseño que queramos gracias al sistema de themes basado en el motor PHPTemplate. Sin embargo sigue sin ser una tarea abordable por un diseñor / maquetador que no tenga conocimientos de PHP. Además, las plantillas que se ofrecen en la propia web de Drupal son realmente pobres y de dudoso gusto a nivel estético.
Con unos conocimientos básicos de php y un poco de tiempo es posible aplicar casi cualquier diseño aunque cuanto más queremos personalizar la “salida” del CMS más programación hay que saber y más artimañas tendremos que utilizar. Drupal no tiene una separación real entre lógica y presentación y de hecho es muy difícil (no sé si imposible) cambiar el HTML con el que se pintan determinados contenidos (por ejemplo cuando devuelve una lista de etiquetas lo hace con UL / LI e intentar que lo haga con DL / DD / DT obliga a tocar muy a fondo). En esto Drupal está muy lejos de Typo3.
Pero prefiero ser positivo. En el proyecto en que he estado trabajando el diseño lo hice sin pensar en el CMS y he podido implementarlo sin mayores problemas.
Desarrollando el proyecto
Si el proyecto que estás desarrollando va en la línea de Drupal existen una ingente cantidad de módulos que harán de tí un desarrollador realmente productivo. El desarrollo se hacer rápido y sencillo a través de las soluciones que han ido aportando los miembros de la comunidad. Por ejemplo he necesitado cosas como un sistema para “puntuar” contenidos y otro para hacer rankings de usuarios… para ambas necesidades he encontrado el módulo correspondiente y los dos cubrían de sobra mis necesidades (por cierto, el módulo five stars para valorar contenidos es una auténtica joya a nivel de usabilidad)
No he llegado a necesitar desarrollar un módulo propio; he encontrado solución a cada una de mis necesidades. Si hubiera sido necesario creo que gracias a la potente y bien documentada API podría haberlo hecho sin demasiados problemas.
Interfaz de administración
Es de lo que menos me gusta de Drupal. Aunque han mejorado desde versiones anteriores, el área de Backend es realmente difícil de utilizar y está organizada de forma un poco caótica a menos que instales el módulo “Simple Menu“.
Además en Drupal es difícil distinguir bakend y frontend. Ambos están bajo el mismo interfaz (por defecto, esto se puede cambiar)… uno empieza a administrar cuando se autentifica con un usuario con derechos de administración. Esto, teóricamente, debería ser una buena opción pero en la práctica, los que estamos acostumbrados a tener nuestro backend bajo un interfaz distinto y enfocado únicamente a gestión de contenidos, nos encontramos bastante perdidos.
Por otro lado no me gusta nada cómo presentan las pantallas para introducir contenidos o configurar módulos. A menos que uno lo personalice, los formularios se hacen muy largos, con demasiadas opciones secundarias, y resultan un poco confusos. Hay sistemas para personalizar la presentación de estos formularios pero es bastante complejo; siempre se puede atacar con CSS.
Ayuda y documentación
Aquí hay que decir que en la web oficial de Drupal hay una cantidad ingente de documentación: Handbooks, documentación específica de cada módulo y un explorador de la API. Además hay muchos grupos de usuarios y bastante activos donde es fácil encontrar soluciones a la mayoría de problemas.
Pero personalmente tengo la sensación de que a medida que uno va profundizando tecnicamente la calidad de la información ofrecida va disminuyendo; los gurús no participan demasiado y /o la gente se calla soluciones que le ha costado mucho encontrar.
Finalizando
Ya sabía que Drupal era uno de los mejores CMS que hay en el mercado. Esta experiencia me ha confirmado este hecho.