Este CMS reluce como el oro por fuera, y por dentro es oro puro, una joya del software ? Es uno de los mejores CMSs Open Source que tenemos disponibles para los proyectos. Hoy os traigo una review, tratando de remarcar el porqué es uno de los más usados en el mercado, sobretodo en proyectos complejos para universidades, gobiernos y en las empresas más tecnológicas. Es uno de los CMS que hay que conocer. Espero resumir bien las principales características, sobre todo desde el punto de vista de un programador ? aunque trataré también temas para marketeros y agencias.
Es uno de los más flexibles y escalables. Inicialmente tenía su propio framework, pero luego comenzó incorporando Symfony 2, y en las últimas versiones viene incorporando Symfony 3. Ya está integrado con Composer. Internamente, prioriza las mejores técnicas de desarrollo para garantizarte una solución robusta para tus proyectos. Externamente, es de lo más personalizable sin tener que invertir demasiado tiempo. Tiene un gran ecosistema de configuraciones, temas y módulos disponibles. Sobre todo una gran comunidad de desarrolladores con casi 50000 módulos y casi 3000 temas disponibles a fecha de hoy, en el marketplace de Drupal.org.
A continuación trataré de dar unas pinceladas a las principales herramientas de Drupal que me han parecido más interesantes. Estoy hablando del multisitio que también encontramos en otros CMSs como WordPress o Magento. Tiene módulos de tienda que rivalizan de nuevo con Magento, WooCommerce, Prestashop, etc. También tiene de casa los RESTful Web Services y la JSON:API que expone la información fácilmente para que puedas desacoplar totalmente el frontend. Así podrás desarrollarlo con Angular, React, Vue.. o incluso integrarlo con sistemas informáticos no-web programados en casi cualquier lenguaje, como otros sistemas de gestión, ERPs, etc.
Una joya del software Open Source que se merece un puesto destacado..
La documentación oficial
Una de las mejores documentaciones que he visto. Lo primero que hay que hacer, o que deberíamos hacer, es leernos las documentaciones del usuario y del desarrollador:
Toda la documentación está muy bien actualizada, con todo lujo de detalles, guias de referencia, etc. La página inicial de la doc es:
..a partir de aquí podremos encontrar navegando cualquier detalle, o con el buscador.
Instalando en local o en producción
No necesitaremos muchos recursos hardware para correr Drupal. Es compatible con bases de datos SQLite, Postgresql y Mysql compatibles. Tenemos 3 formas de instalar los códigos fuentes si no me equivoco:
- Mediante descarga directa del fichero comprimido.
- Mediante Composer.
- Mediante el comando de consola de Drupal.
En la guía del desarrollador tendremos con todo lujo de detalles explicados para configurar Git, varios entornos de programación, para publicar configuraciones en producción, automatizar despliegues, etc.. Un monton de información muy útil, que en otros CMSs me ha costado encontrar, pero en Drupal está muy bien explicado con todo lujo de detalles:
https://www.drupal.org/docs/user_guide/en/install-decide.html
Personalizando el frontend
Como punto de partida, con los temas disponibles, ya tenemos una forma sencilla y flexible de personalizar Drupal conforme al proyecto. Provee de un sistema de layout, con el que a base de bloques, podemos ir enganchando todo tipo de contenidos.
Se parece a los sistemas de layouts que podemos encontrar en otros CMSs. Es tan flexible como en Magento o en WordPress.
Personalizando Drupal con módulos y plantillas
El gran ecosistema de módulos y plantillas disponibles es un punto fuerte para elegir Drupal. Es un CMS maduro que lleva un largo recorrido. En sus inicios se decía que era un CMS hecho por desarrolladores, para desarrolladores. Pero esto ha cambiado y es cada vez más accesible para todo tipo de usuarios. Todo esto, sin sacrificar nada de su potencial.
Dispones de todo tipo de módulos, cerca de 50 000, y casi 3000 temas a fecha de hoy:
También hay disponibles distribuciones de Drupal, que son paquetes preconfigurados para ciertas tareas:
Qué más me queda decir que como en otros CMSs, podremos encontrar marketplaces de módulos y temas gratis. También hay varios marketplaces donde encontrar más módulos y temas de pago.
Además, hay un gran número de empresas técnologicas que están basando partes de sus modelos de negocio en trabajos alrededor de Drupal. Drupal es un buen CMS, de calidad, que puede monetizarse bien si se sabe trabajar correctamente.
Drupal como eCommerce
Como no, llegamos al inolvidable tema de los eCommerce. También en Drupal podemos montar una tienda online, un eCommerce. Hay un sitio web dedicado a este efecto:
https://drupalcommerce.org/
También tiene muy buena documentación:
https://docs.drupalcommerce.org/
Si ya tenemos un Drupal funcionando, y queremos añadirle todas las funciones de tienda online, lo más fácil es ir a la línea de comandos y poner:
composer require drupal/commerce
Si todo ha ido bien, ya podemos ir al gestor de módulos e instalarlos para trabajar todos los módulos de eCommerce:
Por otro lado, hay todo un ecosistema de extensiones para mejorar tu tienda. Hay métodos de pago, de transporte, plantillas especialmente diseñadas para eCommerce, etc..
https://drupalcommerce.org/extensions
De nuevo, los hay gratis y de pago en Internet.
Drupal multisitio
Igualmente que con otros CMSs como Magento o WordPress, en Drupal también disponemos de instalaciones multisitio. Es decir, podemos tener una única instalación desde la que gestionamos todos. Una única instalación desde la que servimos varios dominios, con distintos contenidos.
Hace poco traté este tema del multisitio para WordPress. En Drupal es la misma idea que para otros CMSs, aunque cada CMS te encapsula en mayor o menor grado a los contenidos y a los usuarios. Aquí la documentación:
https://www.drupal.org/docs/8/multisite
Desacoplando el frontend con JSON:API y RESTful Web Services
He dejado para el final una de las cosas que más me han gustado de este CMS. Tenemos una API JSON y los RESTful Web services que viene de casa con lo que podemos desacoplar totalmente el frontend.
¡Es brutal la cantidad de aplicaciones que puede tener esto! Piensa que puedes gestionar todo tipo de contenidos, no sólo lo clásico que son páginas, entradas o productos. Entonces podemos dar de alta otros elementos a gestionar con Drupal.. ¿me sigues?
Es decir, podemos gestionar todo tipo de contenidos en el backend, y por otro lado, desarrollar el frontend con cualquier tecnología que sea capaz de conectar. Por ejemplo, con Vue, Angular, React, Java, Python, etcétera.. aplicaciones de escritorio, tablet, móviles.. ERPs.. todo tipo de programas se pueden conectar a una instalación de Drupal.
Decir que Drupal se ha diseña con la premisa API first, con lo que prácticamente cualquier cosa se debería de poder desarrollar. Cualquier software debería de poder conectarse a una instalación de Drupal mediante los RESTfull Web Services o la API JSON. Esta flexibilidad de Drupal me hace cabilar muchas aplicaciones..
Terminando
Para terminar sólo me queda remitirte a la página oficial de Drupal:
https://www.drupal.org/
Para cualquier información no dudes en dejar un comentario aquí abajo. También me puedes escribir en la sección de contacto.
Otro día más.. ¡Un saludo!