logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement
05/07/2025, by Ivan

Menu

Maintenant que nous avons créé un espace réservé pour notre page de configuration du module, ajoutons un lien pour le menu. Les instructions ci-dessous montrent comment créer un lien de menu pour le module hello_world dans la section « Développement » sur la page « Administrateur > Configuration » (http://example.com/admin/config).

Dans le dossier racine de votre module, créez un nouveau fichier nommé hello_world.links.menu.yml et ajoutez-y ce qui suit :

hello_world.admin:
  title: 'Paramètres du module Hello'
  description: 'exemple de création d’un lien vers une page de configuration admin'
  parent: system.admin_config_development
  route_name: hello_world.content
  weight: 100

Notez que la première ligne réserve un espace de noms, comme dans notre exemple de fichier de routage. Notez également l’utilisation de notre nom de route à la 5e ligne (nous utilisons l’espace de noms de la première ligne de l’exemple de fichier de routage). Le titre et la description s’afficheront dans la section « Développement ». Remarquez que la ligne parent décrit le lien parent du menu. En d’autres termes, le lien de menu sera créé sous admin, config, development.

Cela ajoutera un lien vers le chemin indiqué dans hello_world.content (dans cet exemple hello_world.routing.yml) sur les pages d’administration de votre site, dans l’onglet « Configuration » (URL /admin/config) dans la section « Développement ». Bien sûr, vous devrez vider le cache pour que les modifications prennent effet.

Après avoir vidé le cache, vous trouverez le lien de menu « Paramètres du module Hello » dans la section « Développement » de la page de configuration. En cliquant sur ce lien, le module hello_world sera appelé.

Conseils supplémentaires

Le fichier .links.menu.yml est assez flexible. Vous pouvez également l’utiliser pour créer des liens vers des ressources externes ou internes :

hello_world.admin:
  title: 'Paramètres du module Hello'
  description: 'exemple de création d’un lien vers une page de configuration admin'
  parent: system.admin_config_development
  url: http://example.com/this-is-some-example
  weight: 100
hello_world.admin2:
  title: 'Paramètres du module Hello'
  description: 'exemple de création d’un lien vers une page de configuration admin'
  parent: system.admin_config_development
  url: internal:/some-internal-path

 

Non modifiable :

Notez que lorsque vous créez des liens de menu via des fichiers yml et des modules personnalisés de cette manière, vous obtenez des liens de menu non modifiables via l’interface utilisateur. Vous ne pouvez modifier les liens que via le fichier yml. Ils sont considérés comme gérés par les modules, et non comme administrables. Lorsque vous cliquez sur le bouton d’édition d’un élément de menu, vous obtenez le message « Ce lien est fourni par le module XXX. Le titre et le chemin ne peuvent pas être modifiés ».

not-editable-menu-link

Pour créer des liens de menu modifiables, vous devez procéder environ ainsi :

  $my_menu = \Drupal::entityTypeManager()->getStorage('menu_link_content')
    ->loadByProperties(['menu_name' => 'my-menu-name']);
  foreach ($my_menu as $menu_item) {
    $parent_id = $menu_item->getParentId();
    if (!empty($parent_id)) {
      $top_level = $parent_id;
      break;
    }
  }
  $menu_link = MenuLinkContent::create([
    'title' => 'Titre de mon lien de menu',
    'link' => ['uri' => 'internal:/mon/chemin'],
    'menu_name' => 'my-menu-name',
    'parent' => $top_level,
    'expanded' => TRUE,
    'weight' => 0,
  ]);
  $menu_link->save();