Crear un módulo para Drupal 8

El código de Drupal 8 es diferente del de versiones anteriores. Se han adoptado conceptos y estandares modernos, la programación es ahora mayoritariamente orientada a objetos y se usan componentes de Symfony.
 
Ahora crear un módulo, una página o un bloque es totalmente diferente. Mi intención con esta serie de artículos es mostrar como se hace ahora para facilitaros el paso a esta nueva versión que vale mucho la pena.

Puedes leer otros artículos de esta serie:

Dar nombre a nuestro módulo

 
Lo primero que debemos hacer es darle un "nombre máquina" a nuestro módulo. Éste es el que usará Drupal para identificarlo y debe cumplir las siguientes reglas:
 
  • Debe empezar con una letra.
  • Debe estar formado solo por letras minúsculas y guiones bajos.
  • Debe ser único. No debe tener el mismo "nombre máquina" que ningún módulo, tema o perfil de instalacion utilizado en el sitio actual.
  • No de ser ningúno de los siguientes terminos reservados: `src`, `lib`, `vendor`, `assets`, `css`, `files`, `images`, `js`, `misc`, `templates`, `includes`, `fixtures`, `Drupal`.
 
Nosotros le vamos a llamar "hello_drupal".
 

Crear la carpeta de nuestro módulo

 
Ahora que ya hemos elegido un "nombre máquina" para nuestro módulo debemos crear la carpeta donde estaran sus archivos. Ésta se llamará como nuestro módulo, en nuestro caso: `hello_drupal` y deberá estar dentro de la carpeta `modules`.
 
La carpeta `modules` no es el último lugar donde puede estar nuestro módulo. Otras opciones como `sites/all/modules`, `sites/*/modules` o `profiles/*/modules` siguen siendo opciones totalmente válidas aunque `modules` es el lugar recomendado.
 

Crear el archivo de información de nuestro módulo

 
Una parte fundamental en los módulos, temas y perfiles de instalación de Drupal es el archivo `.info.yml`. En el se describe la información de ellos.
 
Este archivo es necesario para:
 
  • Notificar a Drupal de la existencia del módulo, tema o perfil de instalación.
  • Proveer de información a la interfaz de usuario de administración de Drupal.
  • Proveer de criterios para controlar compatibilidad con la versión de Drupal y otros módulos.
  • Otros propositos.
 
Para nuestro módulo el archivo de informació se llamará `hello_drupal.info.yml` y estará en la carpeta `modules/hello_drupal` y el siguiente será su contenido:
 
    name: Hello Drupal
    description: It's a module to learn how to create modules
    type: module
    core: 8.x
 
Este es el archivo de información más sencillo posible. Su contenido es casi autoexplicativo: las dos primeras lineas son utilizadas por la interfaz de administración para describir el módulo y las dos siguientes proveen criterios para controlar la compatibilidad con la versión actual de Drupal.
 
Es posible añadir más propiedades, como:
 
  • `dependencies`: con un listado de los módulos requeridos para el correcto funcionamiento del módulo actual. Si no se cumplen todas las dependencias, no es posible activar el módulo.
  • `options`: con la dirección interna de la página de configuración del módulo si existe. La interfaz de administración mostrará un enlace a esta dirección junto al módulo para facilitar su acceso.
  • `hidden: true`: que oculta el módulo de la interfaz de administración. Esto se suele hacer con módulos de test o desarrollados como ejemplo.
 

Activar nuestro módulo

 
Nuestro módulo está listo para ser activado. Para ello solo tenemos que ir a `admin/modules`, marcar la casilla junto al nombre de nuestro módulo y enviar el formulario.
 
 

 

Contact

Are you interested in our services?

Contact us