viernes, 7 de agosto de 2009

Diez buenas razones para aprender y usar Drupal

Drupal es un sistema de gestión de contenidos o CMS, que se distribuye bajo licencia GPL (100% Libre) y que funciona sobre PHP. En poco tiempo, Drupal se ha convertido en la opción de gestión de contenidos empleada por grandes corporaciones y desarrolladores en todo el mundo. Entre las muchas razones de porque vale la pena aprender este CMS, escogí diez.

  1. Más que un CMS, un potente Framework de gestión de contenidos: Drupal no solo es un sistema de gestión de contenidos, es un conjunto de herramientas, estructuras y en general un potente núcleo capaz no solo de generar portales web; sino de proporcionarnos las herramientas necesarias para generar sitios a medida y orientados a funcionalidades muy específicas. Un muy buen ejemplo es el portal recovery.gov donde se puede ver en tiempo real donde y con que cuantía se gasta el dinero de los impuestos de los estados unidos.
  2. Control absoluto del flujo de trabajo: Drupal permite un amplio control sobre cada parte del proceso de gestión de contenidos. Un portal que requiere una funcionalidad muy específica, hace necesario el tener control absoluto sobre los usuarios, sobre cada fragmento de contenido que se manipula, sobre la manera como se gestiona el acceso a la base de datos y se optimiza el rendimiento. Con Drupal tienes un gran control de todo tu portal en todos los niveles.
  3. Multiples portales interconectados: La funcionalidad Multisites de Drupal permite construir varios sitios web en torno a una misma base de datos, lo que a muchos niveles aumenta la capacidad de interacción entre portales. Un ejemplo de esta funcionalidad se puede ver en los portales de la revista Shock.com, CaracolTV y El Espectador; todos son portales Drupal que comparten datos y procesos entre ellos de manera limpia y transparente.
  4. Usabilidad, Accesibilidad: Drupal es un CMS orientado a la construcción de sitios de calidad. Drupal proporciona marcados limpios, CSS puros y cumplimiento de estándares, lo que facilita el desarrollo de aplicaciones usables y accesibles.
  5. Posicionamiento SEO: Los desarrollos actuales para Drupal en lo que a posicionamiento se refiere, permiten un gran control sobre el meta etiquetado del sitio; así como generación automática de XMLSitemap (Mapas para motores de búsqueda) acordes con la estructura de información, y con la capacidad de avisar a los principales motores de cada cambio realizado enviando de nuevo el sitemap.
  6. Gran control de la visualización de información: Drupal permite la creación de vistas flexibles y a medida. Lo que permite manipular por completo la información que se desplegará al usuario. Un ejemplo podría ser por ejemplo, generar una vista que traiga únicamente los comentarios realizados a una serie de noticias, con la foto de su autor.
  7. Permisos de usuario y roles: La manipulación de usuarios en Drupal permite la creación de roles, y el control avanzado de cada aspecto del sitio en cuanto a permisos se refiere. Por ejemplo se podría crear un rol que únicamente estuviera en la capacidad de eliminar comentarios.
  8. Categorización de alto nivel: El motor de catalogación de Drupal muy flexible y robusto. Permite la creación de niveles de jerarquía tan profundos como se requieran, la definición de estructuras similares a los tesauros (Grandes archivos de catalogación unificada) y su motor de categorización se integra con gran parte de su funcionalidad haciéndose parte indispensable de un desarrollo sobre Drupal.
  9. Una comunidad muy organizada y estricta: La gran mayoría de recursos que se podrían necesitar en un desarrollo sobre Drupal están en su página principal. Todos los proyectos, módulos, temas y contribuciones siguen estrictas normas de codificación y desarrollo, lo que ha garantizado que la comunicación entre módulos sea tranparente y que los recursos desarrollados sean muy estables y confiables.
  10. Un CMS utilizado por los grandes: Hay una gran cantidad de portales construidos sobre Drupal en la industria, solo por citar otros aparte de los ya mencionados tenemos:

¡ Drupal es el ganador del premio al mejor gestor de contenidos OpenSource en los años 2007 y 2008 !

No lo pienses más, descarga Drupal ahora mismo.

martes, 28 de julio de 2009

Como crear SlideShows en Drupal - (Secuencias ánimadas de imágenes o contenidos)

Algunos de los portales desarrollados actualmente, y en especial aquellos que están orientados a la publicación de noticias, han incluido en sus diseños elementos llamados SlideShows.

Un Slideshow es una transición animada de imágenes o textos, que se ha orientado principalmente a destacar contenidos relevantes y que funcionalmente permite al usuario la lectura de varios contenidos sin necesidad de llevar a cabo una recarga de la página. Entre los portales que tienen SlideShows en sus páginas principales podemos nombrar algunos como CaracolTV, ColombiaTravel, Revista Shock entre otros.

Esta es una imagen de un SlideShow empleado en el portal de MTV Uk

Slideshow empleado en el portal de MTV Reino Unido mtv.uk
Si bien hay cientos de plugins e implementaciones en JavaScript para lograr lo deseado, integrar estos plugins con gestores de contenido puede resultar en una extensa tarea de investigación y programación. Para facilitarnos a todos el trabajo en un futuro (Tanto a quienes nunca han hecho una implementación de este tipo, como a los que la hemos hecho y olvidamos de que manera concreta lo solucionamos) recopilé una lista de los módulos y herramientas que ofrece Drupal para SlideShows y los ordené según mi criterio, nombrando desde las opciones más sencillas hasta las más robustas. Me limité a soluciones válidas para Drupal 6.
  1. Featured Content Slider: Provee un bloque al que se le pueden añadir nodos o contenidos creados previamente. Su implementación es rápida y su personalización se hace a través de hojas de estilo (CSS). Una de las limitantes que tiene es que no se puede determinar el orden en que aparecen los elementos de una manera sencilla. Además muestra todo el contenido del nodo (No permite configurar que campos se quieren recuperar).
  2. Slideshow: Una opción de sencilla configuración, convierte todas las imágenes adjuntadas a un contenido en elementos de un slideshow. Lamentablemente solo trabaja con imágenes.
  3. Views Slideshow: ImageFlow: Una excelente opción cuando se quieren por ejemplo mostrar imágenes a manera de galería. Provee un efecto estético muy agradable de zoom y una barra de desplazamiento en vez de botones (Al estilo del visor de carátulas de ITunes). Se integra con el módulo Views; para su implementación solo es necesario crear una vista que tenga campos de imagen y asignarle el estilo SlideShow - ImageFlow. Lamentablemente está orientado a la creación de galerías de imágenes únicamente.
  4. Front Page SlideShow: Es una opción flexible y configurable. Sin embargo exige el pago del Plugin FrontPageSlideshow (Valor 22€)
  5. Dinamic Display Block: Es la opción más robusta, configurable y flexible que encontré. Se integra con el módulo views de modo que tenemos absoluto control sobre los campos que aparecen, el orden en el que aparecen los elementos (En combinación con el módulo nodequeue) y ofrece muchos estilos de visualización, desde un simple slide con imágenes y selectores con números, hasta selectores con imágenes en miniatura y pequeñas descripciones. A cambio de su funcionalidad debes saber que tienes que generar funciones de preprocesado en las plantillas que estés utilziando y dedicarle como mínimo unas dos horas de investigación. Ofrecen tutoriales en la web del autor que describen como hacer slideshows sencillos y avanzados, incluso hay video tutoriales. Es la opción más cercana a lograr un slideshow como el de MTV Uk que puse al inicio de este post.
Finalmente vale mencionar que sea cual sea la solución que se elija, viene bien tomar en cuenta si vale la pena generar un Slideshow para el sitio; al fin y al cabo emplea JavaScript y obliga a que en la recarga se traigan muchos más contenidos, se realicen muchas más consultas y por ende el usuario deba esperar un poco más de tiempo antes de navegar el sitio.