Hinzufügen eines Links zur Seite / admin / config [geschlossen]

8

Ich lerne, wie man ein Modul für Drupal 8 erstellt. Ich habe zahlreiche grundlegende Tutorials gelesen, aber noch keines gesehen, in dem es darum geht, einen Link zur Seite / admin / config hinzuzufügen .

Insbesondere möchte ich den Link im Bereich WEB-DIENSTLEISTUNGEN hinzufügen .

Geben Sie hier die Bildbeschreibung ein

kiamlaluno
quelle
Warum ist dies als "unklar" geschlossen? Es ist ziemlich klar und der abschließende Administrator hat sowohl die Frage als auch die akzeptierte Antwort bearbeitet. Gehört das hierher oder nicht?
user1359
Eine Aufgabe zu beschreiben und zu sagen, dass ich viele Tutorials gelesen habe, ohne zu sagen, was diese Tutorials vorschlugen und warum sie nicht für das OP funktionierten, ist keine Frage.
Kiamlaluno
Die Frage wurde bearbeitet, um ein Tag zu entfernen. Die Antwort wurde bearbeitet, um eine falsche vorgeschlagene Änderung rückgängig zu machen. Weder die Änderungen haben die Bedeutung der Beiträge geändert.
Kiamlaluno

Antworten:

14

Sie können dies genauso tun wie bei jedem anderen Menüpunkt. Sie müssen nur die richtige Position in der Menüstruktur auswählen:

Fügen Sie zuerst den Administratorpfad in Ihre Datei mymodule.routing.yml ein:

/admin/config/...

Zweitens setzen Sie den Menüpunkt in mymodule.links.menu.yml und platzieren Sie ihn unter dem rechten übergeordneten Element:

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

Für die Untermenüs in admin / config wählen Sie das entsprechende übergeordnete Element aus. Beispiel: "Regional And Language" lautet:

parent: system.admin_config_regional

Für "Webdienste":

parent: system.admin_config_services
4k4
quelle
Gibt es eine einfache Möglichkeit, den übergeordneten Wert für ein bestimmtes Administratormenü zu ermitteln? Ich habe mich mit dem Kern beschäftigt, aber es kann schwierig sein, herauszufinden, aus welchem ​​Kernmodul ein bestimmtes Menü stammt.
James Shields
Es ist ein sehr guter Punkt und sehr hilfreich! Ich möchte jedoch eine kleine Bemerkung machen: In Ihrem Beispiel sollte nach dem Aktionsnamen ":" ein ":" stehen. Hier ist ein funktionierendes Beispiel: mymodule.action_method_name: title: 'My Title'Prost!
Nikolay Borisov
Ich habe ähnliche Fragen wie James. Wie finde ich den übergeordneten Namen des Menüs?
Pant
Sie finden sie im *.links.menu.ymlSystemmodul: cgit.drupalcode.org/drupal/tree/core/modules/system/…
4k4
Hey @ 4k4 ist es möglich eine benutzerdefinierte übergeordnete Gruppe zu definieren oder müssen Sie eine vorhandene auswählen?
Tim
5

Es ist sehr einfach, einen Link unter Dienste unter zu erstellen /admin/config.

In diesem Beispiel gehe ich davon aus, dass der Inhalt der Administrationsseite, Einstellungen genannt, von einem Controller im Inneren ausgefüllt wird src/Controller/MymoduleController.php

Im Stammverzeichnis Ihres Moduls befinden sich zwei Dateien mymodule.routing.ymlund mymodule.links.menu.yml.

In der mymodule.links.menu.ymlDatei können Sie Folgendes schreiben:

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

Und mymodule.routing.ymldabei:

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

Dann können Sie den Inhalt der Seite mit den Einstellungen der Controller-Funktion festlegen (). Dies liegt jedoch nicht im Rahmen Ihrer Frage.

Ich hoffe es hilft!

Sergio Garcia
quelle
0

Ich habe festgestellt, dass dieses Modul meine Anforderungen auf sehr einfache Weise erfüllt:

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

Vollständige Anweisungen zur Konfiguration finden Sie unter der obigen URL.

Code-Verwendung:

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

Dabei ist die Fußzeile das Argument @Type und bezieht sich auf den Typ der Konfigurationsseite, die Sie aufrufen.

Eduardo Chongkan
quelle
Hat nicht funktioniert. Wie kann ich debuggen, was falsch ist?
Romisha Aggarwal