Home / Blog / Desarrollo en Drupal8, Capitulo 2 Declaración de tipos de rutas y menu
Imagen de Daniel
Daniel M. Fernandez
Comp. Science Engineer
23 Ene 2017
Desarrollo
en Drupal8, Capitulo 2 Declaración de tipos de rutas y menu

En este capítulos declararemos cada uno de los tipos de menu, links, action, tabs etc; con los que se trabajan en Drupal 8.

Body: 

En este capítulos declararemos cada uno de los tipos de menu, links, action, tabs etc; con los que se trabajan en Drupal 8.

En Drupal 8 los tab y los action link, se encuentra separado del sistema de asignación de rutas conocidos en drupal 7 e incluidos en el menu_hook. Drupal 8 separa esto, aquí se convierte en un sistema de colección de APIs muy bien definidas para cada local taskactions and contextual links. En este epígrafe se explicará la forma en que trabaja cada uno y su forma declarativa en los ficheros yml correspondientes, cada uno debe de estar ubicado en la raíz del módulo.

 

  Action:

En Drupal 8 las acciones locales también se han eliminado del menu_hook, aunque siguen teniendo una funcionalidad muy similar a estos.

Estas acciones son definidas también el formato yml y se definen en el fichero nombrado modulo_name. links.action.yml  donde (modulo_name) es el nombre de su módulo en cuestión.

Definición:

  1. Se especifica la acción local.
  2. Se coloca la llave de la ruta, como en el menu_hook, es mejor practica nombrar la acción y la ruta con el mismo nombre.
  3. Título de la acción.
  4. Se coloca la lista de rutas donde se verá esta acción local.
  5. Ruta donde se verá la acción, si vemos en el capítulo anterior creamos esta ruta en el fichero routing.yml.

Los acction links también se pueden definer de forma dinámica, para esto pueden consultar la documentación de la api en https://www.drupal.org/node/2133247.

 

   Local Tasks

Las tareas locales son las etiquetas que se muestran encima de cada página, son utilizadas principalmente en páginas de administración etc.

Las tareas locales en su mayorías serán estáticas y son definidas en un fichero con nombre definido de la siguiente forma module_name.links.task.yml.

Definición:

  1. Definición de la etiqueta
  2. Título de la etiqueta.
  3. Define la ruta predefinida con anterioridad en el fichero routing.yml y que visualizará la etiqueta cuando este activa.
  4. Ruta que agrupará estas 2 etiquetas.

Nota: También se puede definir un peso para cada etiqueta con (weight). En la imagen se puede ver con claridad que la cláusula base_route en las 2 etiquetas es la misma, de forma tal que se le está diciendo a Drupal8 que estarán agrupadas en la misma local task.

 

  Múltiple niveles de Pestañas

 

Para proporcionar múltiples niveles de pestañas, se utiliza la cláusula <strong>parent_id</strong>  como se explica a continuación, estos niveles se declaran también bajo el mismo fichero module_name.links.task.yml.

Come se ve en la imagen, quedan los múltiples niveles baja la pestaña  “Libros  y Biblioteca“, se relacionan mediante la cláusula parent_id ,es importante aclarar que cuando se definen los niveles  no es necesario poner base_router porque se supone que estarán bajo la misma url de su pestana padre (ejemplo.admin.display).

 

  Contextual links

 

Los enlaces contextuales ya fueron eliminados también del menu_hook en drupal 8. Los enlaces de este tipo se utilizan para crear enlaces para operaciones contextuales sobre objetos u otras entidades, se asemejan a las Local Tasks. Los link contextuales se definen en el fichero con nombre nombre_modulo.links.contextual.yml y lleva la siguiente estructura.

  1. Declaración del enlace contextual
  2. Acción contextual, esta se define en el fichero routing.yml con anterioridad.
  3. Es la cláusula que permite el agrupamiento de cada uno de los enlaces contextuales.
  4. Título del enlace.

Como se ve en la imagen estos dos enlaces contextuales son de un mismo grupo por lo que se mostrarán solapados en un mismo menú, y weigth  es el peso de cada ítem contextual. Drupal 8 buscara cada menú contextual y lo agrupará en un mismo menú utilizando la cláusula group para esto.

 

Conclusiones

En este capítulo se presentó los tipos de menu más utilizados en Drupal 8, su forma declaración y estructura yml. En el próximo capítulo veremos cómo se declara un Block en drupal 8.