Trabajando con Drupal

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.


5 comentarios a esta entrada

Yo diría aún más, Drupal es uno de los mejores frameworks de PHP (libres) que hay ahora mismo en el mercado.
Para la versión 7 (las novedades para el core de la 6 estan ya congeladas) estan centrandose mucho en la usabilidad de ese backend que comentas, ya que las pruebas que han hecho han devuelto resultados desastrosos.

Buen resumen Jose, con drupal he conseguido aumentar mi productividad en un 300% y aunque si es cierto que hay que pegarse con el template, hacer uno desde cero es bien sencillo.

Pero es que es horrible para un front end.
Llevo meses con ganas de hacer un proyecto personal que tengo en mente, debido a la falta de tiempo, y que tampoco creo que sea extremadamente comercial, pues no le meto, sobre todo porqué sé que ese proyecto iría de perlas con Drupal. Pero es que cada vez que me pongo a mirarlo se me quitan las ganas.
Me gustan las cosas bonitas, para mi lo bonito es sencillo, salvo con las mujeres, me encantan las herramientas bonitas, uso mac porque es simplemente útil y precioso, textmate, me gusta Rails y los frameworks MVC de última generación, me encanta jquery y prototype, etc… porque son cosas bonitas y sencillas.
Drupal no encaja, em encantaría que lo hiciera, pero no lo hace.
¿Tan dificil es un Drupal MVC? Ese día incluiré posiblemente Drupal a mi lista de amores.

Está claro que Drupal ni de broma utiliza MVC y que si uno no lo personaliza de forma exhaustiva es bastante “horrible” tanto a nivel de uso como estéticamente.

Pero bueno, se puede ir empezando a trabajar con las plantillas que hay y currarte la personalización del interfaz. Aunque como ponía en el post, hay cosas realmente difíciles de cambiar (formularios por ejemplo)

Creo que es lo mas parecido a la filosofia del software libre. Los paquetitos bonitos habra que buscarlos en otro lado sino se quiere currar

Leave a Reply