Agregar un enlace a la página / admin / config [cerrado]

8

Estoy aprendiendo cómo crear un módulo para Drupal 8. He leído numerosos tutoriales básicos, pero no he visto uno que diga cómo agregar un enlace a la página / admin / config .

Más específicamente, me gustaría agregar el enlace en el área de SERVICIOS WEB .

ingrese la descripción de la imagen aquí

kiamlaluno
fuente
¿Por qué se cierra esto como 'poco claro'? Está bastante claro, y el administrador de cierre ha editado tanto la pregunta como la respuesta aceptada. ¿Esto pertenece aquí o no?
user1359
Describir una tarea y decir que leí muchos tutoriales sin decir qué sugirieron esos tutoriales y por qué no funcionaron para el OP no es hacer una pregunta.
kiamlaluno
La pregunta fue editada para eliminar una etiqueta; la respuesta fue editada para revertir una edición sugerida incorrecta. Ni las ediciones cambiaron el significado de las publicaciones.
kiamlaluno

Respuestas:

14

Puede hacerlo de la misma manera que cualquier otro elemento del menú, solo tiene que elegir la posición correcta en la estructura del menú:

Primero agregue la ruta de administrador en su mymodule.routing.yml:

/admin/config/...

En segundo lugar, coloque el elemento del menú en mymodule.links.menu.yml y colóquelo debajo del elemento primario correcto:

mymodule.action_method_name:
  title: 'My Title'
  description: 'My Description'
  parent: system.admin_config
  route_name: 'mymodule.action_method_name'

Para los submenús en admin / config, elija el padre correspondiente, por ejemplo "Regional And Language" es:

parent: system.admin_config_regional

Para "Servicios web":

parent: system.admin_config_services
4k4
fuente
¿Hay una manera fácil de encontrar el valor principal para un menú de administrador específico? He estado cavando en el núcleo, pero puede ser complicado determinar de qué módulo principal proviene un menú en particular.
James Shields
¡Es un muy buen punto y es muy útil! Sin embargo, quiero hacer un pequeño comentario: en su ejemplo debería haber ":" después del nombre_método de acción. Aquí hay un ejemplo de trabajo: mymodule.action_method_name: title: 'My Title'¡Salud!
Nikolay Borisov
Tengo una pregunta similar como James. ¿Cómo encuentro el nombre principal del menú?
Pant
Puede encontrarlos en *.links.menu.ymlel módulo del sistema: cgit.drupalcode.org/drupal/tree/core/modules/system/…
4k4
1
@jpt, la pregunta original es sobre "Servicios web". Es obvio que "People" es del módulo de usuario, pero si no lo sabe, puede hacer una búsqueda rápida en todos los archivos * .links.menu.yml que tiene en su instalación de Drupal.
4k4
5

Es muy sencillo crear un enlace en Servicios en /admin/config.

En este ejemplo, supondré que el contenido de la página de administración, llamado configuración, será llenado por un controlador dentro src/Controller/MymoduleController.php

En la raíz de su módulo tiene dos archivos, mymodule.routing.ymly mymodule.links.menu.yml.

En el mymodule.links.menu.ymlarchivo puedes escribir esto:

mymodule.settings:
  title: 'My module settings page'
  parent: system.admin_config_services
  description: 'Admin settings page link'
  route_name: mymodule.settings

Y a mymodule.routing.ymlesto:

mymodule.settings:
  path: '/admin/config/services/mymodule'
  defaults:
    _controller: '\Drupal\quotesapi\Controller\MymoduleController::settings'
    _title: 'My module settings'
  requirements:
    _permission: 'administer site configuration'

Luego puede configurar el contenido de la página con la configuración de la función del controlador () Pero eso está fuera del alcance de su pregunta.

¡Espero eso ayude!

Sergio García
fuente
0

Encontré este módulo para resolver mis necesidades de una manera muy fácil de usar:

https://www.drupal.org/project/config_pages

Puede encontrar instrucciones completas sobre cómo configurarlo en la URL anterior.

Uso del código:

<?php print config_pages_get('footer', 'field_footer_copyright'); ?>

Donde pie de página es el argumento @Type y se refiere al tipo de página de configuración que está llamando.

Eduardo Chongkan
fuente
No funcionó ¿Cómo puedo depurar lo que está mal?
Romisha Aggarwal