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
Añadir nuevo comentario