Cómo crear un módulo en drupal 8 con una página de ejemplo

Drupal en su última versión viene con muchos cambios y uno de ellos es la manera de realizar, construir o crear un módulo en drupal 8. Es muy sencillo, pero si no habéis trabajado nunca con frameworks con la estructura de MVC como Symfony o Zend os puede costar un poco entenderlo. Drupal 8 trae muchas cosas de Symfony y una de ellas son las rutas, para construir un módulo y crear una página hay que trabajar las rutas a la manera de Symfony, bueno voy ha pasar ha la acción y os muestro un sencillo ejemplo de un módulo en drupal 8.

Supongo que si has llegado hasta aquí tienes ya tu proyecto drupal 8 instalado y funcionando, si no es así, aquí tienes una manera muy sencilla de como intalar drupal 8 con la consola de drupal. Un vez que tengamos el proyecto podemos crear un módulo en drupal 8.

Estructura de directorios de drupal 8

La estructura de drupal 8 también ha cambiado un poco, ya no es necesario trabajar en sites/all/modules, ahora los módulos que no son del core de drupal están en modules, así de simple. Esta es la estructura.

Crear un módulo en drupal 8

Ok, pues en modules creamos nuestra carpeta con el nombre de nuestro módulo que vamos a llamar myModule. Dentro de esta, para nuestro módulo vamos a crear el archivo myModule.info.yml

Bueno pues ya está, ya tenemos nuestro módulo de drupal 8, esto es todo lo que necesitamos para que drupal detecte un módulo nuevo, vamos a mirar en el panel de administración de nuestro portal drupal en extender buscamos myModule y lo encontramos, ya podemos activarlo.

crear un módulo en drupal 8

Pero no lo vamos a dejar aquí, vamos a crear una página nueva, vamos a ello.

Crear una página en drupal 8

Para crear una páginas tenemos que usar el componente routing de Symfony, para ello vamos a crear el archivo myModule.routing.yml en nuestro módulo. Para el ejemplo voy a crear dos páginas.

Os paso a explicar un poco este archivo.

  • Path es la ruta donde se mostrará nuestra página.
  • _controller es el controlador que manejará los datos de esta ruta, ahora lo creamos.

myModuleController es el nombre de nuestro controlador y content es la función que queremos usar, un controlador puede tener varias funciones como verPagina, insertar, ver o eliminar por ejemplo.

Ya hemos creado las rutas, que bonito es drupal 8, ¿A qué si? Vamos a por los controladores, para ello tenemos que crear el archivo myModuleController.php en la ruta src/Controller de nuestro módulo.

Os paso a explicar un poco, un controlador es una clase que extiende de la clase ControllerBase, dentro declaramos las funciones públicas que queramos y devolvemos el contenido. aquí podemos hacer el típico node_load() que ha cambiado un poco y devolverlo a nuestro tpl de twig, pero eso lo explicaré otro día.

¿Qué pasa? ¿no funciona…? Prueba a vaciar las caches, ve ha configuracion/desarrollo/rendimiento y vacía todas las caches.

Ahora prueba a copiar las rutas que creamos y cópialas en el navegador, ahora si verdad.

¿Te animas a crear un módulo en drupal 8? Es muy sencillo ¿verdad?

Aquí os dejo el enlace del módulo que he mostrado en el ejemplo en mi github de como crear un módulo en drupal 8

About ignacio Farré

Técnico en programación web, amigo de MVC y experto en Drupal, Symfony, Prestashop y bootstrap.

Check Also

Como crear formulario en drupal 8

Cómo crear un formulario en drupal 8 e insertarlo en un bloque o una página

En este artículo os voy a enseñar como crear un formulario en drupal 8 para …

Como crear una página en drupal 8 y maquetar en un theme

Crear una página en Drupal 8 y maquetar en un template

Es muy fácil crear una página en drupal 8, pero lo interesante es poder maquetarla …

programar un bloque con drupal

Crear un bloque en drupal 8 y maquetar en un theme

Os voy a mostrar como crear un bloque en drupal 8 y lo mas importante, …