menus
#
Menu#
Admin- Dans l'admin j'associe les pages au menu principal et les pages de niveau 2 à leur page parent (soit via le menu dans chaque node que je crée soit en créant un lien dans menu principal).
- Dans Menus/ Navigation Principale, sur les menus qui auront des enfants, bien coché "Afficher déplié" !
- Dans Mise en page des blocs / configuration du bloc Main Navigation je prends soin dans "niveaux de menu" de mettre "nombre de niveaux affichés à 2".
#
Ajouter un menu sur le site- Identifier la région ou la déclarer dans le fichier du thème (theme.info.yml)
- Ajouter la région dans le twig concerné
- Créer et personnaliser le twig du menu concerné
- Créer et personnaliser le block concerné
#
Connaitre l'url de la page courrante et l'afficher en twig- Le chemin abcolu
- Le chemin relatif
#
Autre méthode d'affichage d'un menuOn peut utiliser aussi twig_tweak :
ici, on affiche le menu principal (main) à partir du deuxième niveau et sur 2 niveaux (comme on commence au deuxième niveau on ne va donc avoir que le second niveau qui s'affiche) et on l'affiche déroulé (TRUE)
#
Liens dans un menuPour détecter si le lien est externe ou interne :
#
Pour détecter si le lien du menu est actif- utiliser la propriété
item.in_active_trail
#
Sélecteur de langue :- Pour récupérer la valeur de la langue active :
function solocal_preprocess_links__language_block(&$variables) {
$currentLanguageCode = \Drupal::languageManager()
->getCurrentLanguage()
->getId();
// replace key of active language with 'activeLink'
$variables['links']['#lang'] = strtoupper($currentLanguageCode);
}
- Pour affichage dans le TWIG
Pour pouvoir afficher la langue de 2 manières différentes :
- Ajouter le block selecteur de langue dans 2 regions
- Ajouter ces fonctions pour avoir des suggestions basées sur les régions :
on utilise ensuite la suggestion adaptée pour skinner différemment les 2 blocs.
- Dans le twig, utiliser twig_tweak :
{{ drupal_entity('block', 'selecteurdelangue_mobile') }}
si l'un des selecteur est dans une region cachée, sinon afficher la region de façon standard.
Pour skinner les link comme on le souhaite :
Keep the comment : This will render the item.link and populate the attributes (including #url). Thanks to this trick, you can skin the links the way you want.
#
Afficher les liens d'actions en front- Aller dans la structure des blocs : admin/structure/block
- Activer le menu Onglets dans Contenu
#
Restreindre la barre de menu à un rôle- Sur le menu Onglet, cliquer sur Configurer
- Dans Visibilité cocher les rôles à autoriser
#
Breadcrumbs- Installer le module easy_breadcrumb => configuration(/admin/config/user-interface/easy-breadcrumb) > paramètres généraux
- Placer le bloc "Fil d'Ariane" dans la région "Fil d'Ariane".
- Pour l'utiliser sur les pages, dans le code :
{{ drupal_region('breadcrumb') }}
- Personnaliser les twig via les suggestions (exp: block--breadcrumb.html.twig ET/OU breadcrumb.html.twig)
- UTILISER DE PREFERENCE PATHAUTO
Pour faire correspondre la valeur du breadcrumb avec pathauto :
- Décocher Use the real page title when available, Use menu title when available, Use page title as fallback for menu title
#
Customize a breadcrumbIf you want to use a custom field (ie. "field_titre_push") instead of the title, you can proceed as below (for a node based on an "article" content type): Don't forget to untick "Use the real page title when available, Use menu title when available, Use page title as fallback for menu title" in easy breadcrumb settings.
For a media :