Ich möchte den Menütyp in Drupal 8 ändern. In Drupal 7 können wir dies mit hook_menu_alter erreichen
function module_menu_alter(&$items) {
$items['admin/config/people/ip-blocking/default'] = array(
'title' => 'Block IP Address',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
}
Ebenso möchte ich den Menütyp in Drupal 8 ändern. Wie kann ich das machen? Danke.
Antworten:
Die Antwort von Linus ist zwar großartig, gibt aber kein Feedback zu Ihrer spezifischen Frage:
In Drupal 8 gibt es keinen Menütyp. Alles, was früher ein Typ war, ist jetzt etwas ganz anderes. Routen, Menüverknüpfungen, lokale Aufgaben, lokale Aktionen. Und oft haben Sie mehrere Dinge. Sie haben immer eine Route (7.x wird verwendet, um diesen Rückruftyp aufzurufen). Außerdem fügen Sie Menüverknüpfungen, lokale Aufgaben oder Aktionen für diese Route hinzu.
Sie können also beispielsweise keinen Menülink in eine lokale Aufgabe oder sogar eine Route zu einer lokalen Aufgabe konvertieren. Das einzige, was Sie tun können, ist z. B. einen Menü-Link zu ändern (was nichts mit der oben erwähnten Routenänderung zu tun hat) und stattdessen eine neue lokale Aufgabe zu erstellen.
In der Antwort von Linus finden Sie Links und weitere Informationen dazu, wie Sie diese Dinge tun können.
quelle
Drupal 8 hat ein neues Menüsystem, es gibt kein
hook_menu
und keinhook_menu_alter
mehr.Wenn Sie eine vorhandene Route ändern möchten, ist diese im Vergleich zu Drupal 7 etwas komplizierter.
In Ihrem Modul müssen Sie eine Klassendatei erstellen
YOURMODULE/src/Routing/CLASSNAME.php
, die Folgendes erweitertRouteSubscriberBase
:Sie können die RouteSubsciber- Klasse des Knotenmoduls als Beispiel nehmen.
Damit Ihr RouteSubscriber erkannt wird, müssen Sie auch eine
YOURMODULE.services.yml
Datei im Stammverzeichnis Ihres Modulverzeichnisses erstellen :Um einen besseren Einblick in das neue Menüsystem zu erhalten, würde ich die folgenden Artikel empfehlen:
Bearbeiten: Wie von Berdir erwähnt , hat das Menüsystem jetzt eine andere Struktur, die nichts mit dem Menüsystem von D7 zu tun hat, so dass es keinen Menütyp mehr gibt.
quelle