drupal

Crear una página personalizada con código fácilmente en Drupal

Para crear una página personalizada en Drupal desde un módulo personalizado necesitamos crear una relación entre una ruta y un controller.

  • Una ruta para definir donde será nuestra nueva página
  • Un Controller para ejecutar el código que queramos, siendo este referenciado a una ruta.

 

Para demostrarlo haremos un ejemplo muy simple así que lo primero que debemos tener es un módulo con la estructura más básica

Partiendo por el archivo principal my_example.info.yml

name: My example                                                                                                                                  
type: module
description: Módulo de ejemplo para pruebas.
version: 0.1 
core: 8.x 

 

Lo siguiente será definir la ruta donde se irá a mostrar, debemos crear un archivo llamado my_example.routing.yml

Podemos notar que se define ahí la ruta donde será la nueva página, también el controller y su método que son conectados a la ruta, el título que tendrá y su permiso. 

my_example.content:                                                                                                                               
  path: '/mi-pagina'
  defaults:
    _controller: '\Drupal\my_example\Controller\MyExampleController::content'
    _title: 'Mi Página'
  requirements:
    _permission: 'access content'

 

Por último necesitamos crear el Controller, este debe seguir una estructura de directorios partiendo desde la raíz del módulo /src/Controller/MyExampleController.php

Podemos notar que ahí se está definiendo el método a ser ejecutado cuando se acceda a la ruta, esto variará de acuerdo al requerimiento que se quiera cubrir.

<?php                                                                                                                                             
namespace Drupal\my_example\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
 * Controller MyExample.
 */
class MyExampleController extends ControllerBase {

  /** 
   * Display the markup.
   *
   * @return array
   *   Return markup array.
   */
  public function content() {
    return [
      '#type' => 'markup',
      '#markup' => $this->t('Este es mi página de prueba!'),
    ];  
  }
}

 

Ahora solo queda Instalar el modulo y visitar la ruta definida /mi-pagina, en nuestro caso solo mostrará ese texto definido en la función. Así de sencillo es crear una página personalizada en Drupal.

Me pareció interesante el artículo

Deseo más información

O también puedes comunicarte con nosotros.

por whatsapp por whatsapp

Añadir nuevo comentario

Me gustaría más información sobre:

CAPTCHA