Image
Bloque custom en Drupal 8/9 : Mi primer bloque
Bloque custom en Drupal 8/9 : Mi primer bloque

Una vez que tenemos claro como crear un módulo custom en Drupal 8/9, nos surge la necesidad de incluir en nuestro portal un bloque custom en Drupal 8/9 que pinte algo, ya sea un texto , formulario o cualquier entidad de Drupal.

Lo primero que necesitamos es generar la estructura para que Drupal se entere de que existe un bloque nuevo:

Image
Bloque custom en Drupal

Como podemos ver, la estructura es: MIMODULO/src/Plugin/Block y dentro la clase con una nomenclatura en concreto, aunque pongamos otro nombre a nuestra clase seguiría funcionando, pero lo correcto es llevar un orden lógico.

Ahora ya dentro de la clase empezamos generar el código mínimo necesario para que Drupal lo pueda interpretar.

Para empezar necesitamos especificar en cual nombre de espacio se encuentra nuestro bloque y como mínimo necesitamos añadir la clase a la que necesitamos extender:

Image
Bloque custom en Drupal

Además tenemos que definir de forma obligatoria la "id" y el nombre de nuestro bloque:

Image
Bloque custom en Drupal

De esta forma ya podemos generar la estructura básica del block que se conforma de una clase extendiendo de "BlockBase" de Drupal y que tiene que tener como mínimo una función pública llamada "build" por la cual Drupal mostrara todo el contenido del bloque.

Image
Bloque custom en Drupal

En este ejemplo simplemente queremos que nuestro bloque pinte un texto "Hola Mundo", para ello desde nuestro bloque retornamos un "Markup" con el texto:

Image
Block build markup

En este momento si colocamos en nuestro bloque en cualquier lugar de nuestra web, veremos el texto insertado.

Ejemplo completo de la clase:

 

<?php

namespace Drupal\a_test\Plugin\Block;

use Drupal\Core\Block\BlockBase;


/**
 * Provides a 'A test' Block.
 *
 * @Block(
 *   id = "a_test_hello_world",
 *   admin_label = @Translation("A Test Hello World"),
 * )
 */
class aTestHolaBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {
    return [
      '#markup' => $this->t('Hola Mundo'),
    ];
  }

}

 

Y así es como podemos crear un bloque custom en Drupal 8/9: Mi primer bloque | AulaDrupal.

Para mas información visite nuestro blog.

Image
Módulo custom en Drupal 8/9 : Mi primer módulo
Módulo custom en Drupal 8/9 : Mi primer módulo

Lo bueno de Drupal es que es una comunidad muy activa, en la cual muchas personas contribuyen añadiendo funcionalidades para que el resto de las personas las puedan utilizar. Aun así, siempre surge la necesidad a la hora de crear o mantener un portal disponer de funcionalidades que o bien no existen o existen, pero no se adaptan a nuestras necesidades. En este caso podemos crearlas nosotros mismos de una manera muy sencilla. Así que vamos a aprender a crear un módulo custom en Drupal.

Antes de empezar, necesitamos saber que en Drupal existen dos tipos de módulos:

Image
Estructura básica

Los módulos contrib que son los que podemos encontrar en Drupal.org y que están disponibles para su uso por cualquier persona que los descargue y los módulos custom que son aquellos privados que se usan en un proyecto en concreto y no son públicos.

En nuestro caso crearemos nuestro módulo dentro de la carpeta custom, para ello simplemente creamos un nuevo directorio con el nombre de nuestro módulo. Algo a tener en cuenta y que es muy importante, es que el nombre de la carpeta será el nombre máquina que Drupal utilizará para llamar a las funciones dentro del módulo.

Para el ejemplo, crearemos un módulo que se llamara "A Test", por lo que crearemos el directorio con el mismo nombre.

Image
a_test module

Fíjese que siempre se tiene que añadir en minúsculas y los espacios se transforman en guiones bajos.

Una vez creada la carpeta del módulo necesitamos generar dentro de ella un fichero por el cual Drupal será capaz de detectar que el nuevo directorio es un nuevo módulo. El nombre del fichero tiene que contener el nombre máquina del módulo seguido de ".info.yml".

Image
Info.yml

El contenido de este archivo debe seguir una estructura básica la cual puede ser mucho más extensa dependiendo de la funcionalidad.

name: A Test
type: module
description: Mi primer módulo custom
package: custom
core_version_requirement: ^8.8 || ^9

Donde especificamos el nombre, tipo, descripción, package o grupo de módulos y la versión de Drupal donde nuestro módulo funciona.

Cuando este fichero ya está creado y rellenado, Drupal ya sabe que existe y si navegamos al listado de módulos desde dentro del propio portal, nuestro módulo ya es visible para instalar.

Image
Install

 

Y así es como podemos crear un módulo custom en Drupal 8/9.

Para mas información visite nuestro blog.