Je veux changer le type de menu dans Drupal 8. Dans Drupal 7, nous pouvons y arriver en utilisant hook_menu_alter
function module_menu_alter(&$items) {
$items['admin/config/people/ip-blocking/default'] = array(
'title' => 'Block IP Address',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
}
De même, je veux changer le type de menu dans Drupal 8. Comment puis-je le faire. Merci.
Réponses:
Bien que la réponse de Linus soit excellente, elle ne fournit pas de commentaires sur votre question spécifique:
Il n'y a pas de type de menu dans Drupal 8. Tout ce qui était un type est maintenant complètement différent. Itinéraires, liens de menu, tâches locales, actions locales. Et souvent, vous avez plusieurs choses. Vous avez toujours un itinéraire (7.x utilisé pour appeler ce type de rappel). De plus, vous ajoutez des liens de menu, des tâches ou des actions locales pour cet itinéraire.
Ainsi, vous ne pouvez pas convertir un lien de menu en tâche locale par exemple, ni même un itinéraire vers une tâche locale. La seule chose que vous pouvez faire est par exemple de modifier un lien de menu (ce qui n'a rien à voir avec le changement d'itinéraire mentionné ci-dessus) et de créer une nouvelle tâche locale à la place.
Voir la réponse de Linus pour les liens et plus d'informations sur la façon de faire chacune de ces choses.
la source
Drupal 8 a un nouveau système de menus, il n'y en a plus
hook_menu
et il n'y en ahook_menu_alter
plus.Si vous souhaitez modifier un itinéraire existant, c'est un peu plus compliqué par rapport à Drupal 7.
Dans votre module, vous devez créer un fichier de classe
YOURMODULE/src/Routing/CLASSNAME.php
qui s'étendRouteSubscriberBase
:Vous pouvez prendre la classe RouteSubsciber du module de noeud comme exemple.
Pour que votre RouteSubscriber soit reconnu, vous devez également créer un
YOURMODULE.services.yml
fichier à la racine du répertoire de vos modules:Pour mieux comprendre le nouveau système de menus, je recommanderais les articles suivants:
Edit: Comme mentionné par Berdir , le système de menu a maintenant une structure différente, qui n'a rien à voir avec le système de menu de D7, donc il n'y a plus de type de menu.
la source