Extendiendo y alterando Drupal 8

diseno.jpg
Solucionex
17
Nov 15

Faltan pocos días para el lanzamiento de la primera versión estable de Drupal 8. Mucho hemos leido sobre los cambios en esta versión: nuevos módulos en el core, nuevo enfoque de programación con symfony como protagonista, composer, archivos de configuración yaml, sistema de plantillas basado en twig, etc etc etc. En definitiva, muchos conceptos novedosos que pueden abrumar un poco a muchos desarrolladores de Drupal 7.

A modo de resumen voy a indicar una serie de "titulares" para extender o alterar el comprotamiento de Drupal 8. No entraré en detalles, simplemente una visión desde la superficie para tratar de centrar algunos conceptos.

Básicamente, la forma más común de extender las funcionalidades que ofrece Drupal es utilizando temas o módulos. Existe otra alternativa que es utilizando perfiles de instalación, para por ejemplo crear distribuciones con funcionalidad más compleja (Drupal commerce es un buen ejemplo).

Los temas permiten alterar el aspecto de un sitio Drupal.  Se trata de un conjunto de archivos que incluyen plantillas HTML, CSS, JavaScript, imágenes, archivos de configuración yml, etc.. Su estructura de directorios y archivos deben cumplir con unos requisitos en su definición.

Mucho ha cambiado en la forma de hacer "theming" de Drupal 7 a Drupal 8. El mayor de todos quizás sea el uso de Twig que separa la funcionalidad de los elementos de cómo deben verse esos elementos (módelo vista-controlador).

Es altamente recomendable la documentación oficial para empezar a desarrollar estos conceptos: https://www.drupal.org/theme-guide/8

La otra parte importante en el desarrollo de Drupal son los módulos. Existe una gran cantidad de módulos contribuidos por la comunidad de Drupal que nos ofrecen una gran variedad de funcinalidad, capaz de resolver la mayoría de las necesidades que nos surgan en un proyecto.

Pero hay casos en los que los requerimientos de nuestro sitio son tan específicos que los módulos contribuidos no se ajustan a lo que necesitamos. En estos casos debemos definir nuestros propios módulos para crear nuevas funcionalidades o modificar el comportamiento del core u otros módulos.

Existen diversas maneras para conseguir nuestros objetivos:

Como siempre, para profundizar y extender estos conocimientos, existe una gran cantidad de información en Drupal.org. como punto de partida: https://www.drupal.org/documentation/develop