Ajout d'un lien vers la page / admin / config [fermé]

8

J'apprends à créer un module pour Drupal 8. J'ai lu de nombreux tutoriels de base, mais je n'en ai pas vu parler de l'ajout d'un lien vers la page / admin / config .

Plus précisément, je voudrais ajouter le lien sous la zone SERVICES WEB .

entrez la description de l'image ici

kiamlaluno
la source
Pourquoi est-ce clos comme «peu clair»? C'est assez clair, et l'administrateur final a modifié à la fois la question et la réponse acceptée. Est-ce que cela appartient ici ou non?
user1359
Décrire une tâche et dire que j'ai lu de nombreux didacticiels sans dire ce que ces didacticiels suggéraient et pourquoi ils ne fonctionnaient pas pour le PO ne pose pas de question.
kiamlaluno
La question a été modifiée pour supprimer une balise; la réponse a été modifiée pour annuler une modification suggérée incorrecte. Ni les modifications n'ont changé la signification des messages.
kiamlaluno

Réponses:

14

Vous pouvez le faire de la même manière que n'importe quel autre élément de menu, il vous suffit de choisir la bonne position dans la structure du menu:

Ajoutez d'abord le chemin d'administration dans votre mymodule.routing.yml:

/admin/config/...

Ensuite, placez l'élément de menu dans mymodule.links.menu.yml et placez-le sous le bon parent:

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

Pour les sous-menus dans admin / config, vous choisissez le parent correspondant, par exemple "Regional And Language" est:

parent: system.admin_config_regional

Pour les "services Web":

parent: system.admin_config_services
4k4
la source
Existe-t-il un moyen simple de trouver la valeur parent pour un menu administrateur spécifique? J'ai creusé dans le cœur, mais il peut être difficile de déterminer de quel module principal provient un menu particulier.
James Shields
C'est un très bon point et c'est très utile! Je veux cependant faire une petite remarque: dans votre exemple, il devrait y avoir ":" après action_method_name. Voici un exemple de travail: mymodule.action_method_name: title: 'My Title'Cheers!
Nikolay Borisov
J'ai une question similaire à celle de James. Comment trouver le nom du parent du menu?
Pantalon
Vous pouvez les trouver dans *.links.menu.ymlle module système: cgit.drupalcode.org/drupal/tree/core/modules/system/…
4k4
1
@jpt, la question d'origine concerne les "Services Web". Il est évident que "People" provient du module utilisateur, mais si vous ne savez pas, vous pouvez effectuer une recherche rapide dans tous les fichiers * .links.menu.yml que vous avez dans votre installation Drupal.
4k4
5

Il est très simple de créer un lien sous Services à /admin/config.

Sur cet exemple, je suppose que le contenu de la page d'administration, appelé paramètres, sera rempli par un contrôleur à l'intérieur src/Controller/MymoduleController.php

À la racine de votre module, vous avez deux fichiers, mymodule.routing.ymlet mymodule.links.menu.yml.

Au mymodule.links.menu.ymlfichier, vous pouvez écrire ceci:

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

Et à mymodule.routing.ymlcela:

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

Ensuite, vous pouvez définir le contenu de la page avec les paramètres de fonction du contrôleur () Mais cela sort du cadre de votre question.

J'espère que cela aide!

Sergio Garcia
la source
0

J'ai trouvé ce module pour répondre à mes besoins de manière très simple à utiliser:

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

Vous pouvez trouver des instructions complètes sur la façon de le configurer dans l'URL ci-dessus.

Utilisation du code:

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

Où pied de page est l'argument @Type et fait référence au type de page de configuration que vous appelez.

Eduardo Chongkan
la source
Ça n'a pas marché. Comment puis-je déboguer ce qui ne va pas.
Romisha Aggarwal