Comment ajouter un lien de connexion au menu "Navigation principale"?
Lorsqu'un utilisateur clique sur le lien, il doit le diriger vers la page / user / login. Une fois connecté, le lien devrait changer pour dire "Déconnexion" au lieu de "Connexion".
Existe-t-il un moyen d'ajouter un tel lien?
8
navigation
GTS Joe
la source
la source
Réponses:
Nous n'avons pas besoin de dépendre du thème Bootstrap ou de nos compétences en programmation pour déplacer le lien " Déconnexion " du système sur un autre menu. Drupal nous permet de le faire facilement.
De plus, nous pouvons simplement créer deux liens personnalisés " Connectez-vous ici s'il vous plaît " et " Sortez-moi de là " avec les chemins / user / login et / user / logout relativement. C'est mieux parce que contrairement au lien "Déconnexion" du système, il nous permet de créer autant de liens de connexion / déconnexion que nous voulons avec des attributs personnalisés. Lorsque l'utilisateur s'est connecté, il ne verra que le lien " Déconnexion " et vice versa. La seule mise en garde est que vous verrez probablement les deux liens ensemble car vous êtes connecté au moment de tester les liens. Et cela est normal car vous avez l' autorisation " Lien vers n'importe quelle page " en tant qu'administrateur. Désactivez cette autorisation et réessayez.
la source
1) Menu Édition et ajoutez le lien de déconnexion.
2) Il ne vous reste plus qu'à configurer le bloc de liens de votre menu principal
Ensuite, dans Rôles, cochez ☑ Utilisateurs authentifiés et également ☑ Administrateur
3) Maintenant, créez un autre menu (
/admin/structure/menu
) qui a le lien "login" et tous les autres liens de menu dont vous avez besoin.4) Ensuite, allez dans les blocs (
/admin/structure/block
) du menu principal (en supposant que vous utilisez Bartik, peut avoir un nom différent si vous utilisez un thème personnalisé) cliquez sur ajouter, ajoutez le menu que vous venez de créer et configurez-le. Cette fois pour les rôles, cochez uniquement ☑ Anonymela source
:)
Il existe une meilleure façon de procéder. Ce que vous voulez faire, c'est créer votre propre plugin et étendre la classe MenuLinkDefault. Le meilleur endroit à regarder est le module Drupal / User qui fournit l'implémentation LoginLogoutMenuLink.
Vous pouvez soit définir votre propre plugin si vous voulez par exemple changer le texte ou la logique. Alternativement, vous pouvez simplement le pointer vers le plugin existant pour gagner du temps et simplement mettre l'implément existant. Voici un exemple de code:
Version simple:
Créer
my_module/my_module.links.menu.yml
Version avancée:
my_module/src/Plugin/Menu/
dossiernamespace Drupal\my_module\Plugin\Menu;
class LoginLogoutMenuLink extends MenuLinkDefault
àclass MyLoginLogoutMenuLink extends MenuLinkDefault
my_module.links.menu.yml
comme ci-dessus mais assurez-vous de nommer la classe comme vous l'avez nommée maintenant et pointez-la vers votre module. Voir l'exemple ci-dessous.Votre
my_module/src/Plugin/Menu/MyLoginLogoutMenuLink.php
devrait ressembler à ceci:Votre
my_module/my_module.links.menu.yml
devrait ressembler à ceci:J'espère que ça aidera quelqu'un.
la source
Vous pouvez le faire avec le thème Bootstrap 3 Drupal 8 car ce thème fournit cette fonctionnalité par défaut. Je poste l'image de mon site d'essai drupal 8. L'un avec la page de connexion et l'autre avec la page de déconnexion.
Cherchez-vous ce genre de chose?
Suivez les étapes suivantes.
1. Accédez à Structures> Blocs. Et assurez-vous que la configuration suivante dans la section Navigation.
2. Allez dans Structures> Menus> Menu Compte d'utilisateur et désactivez Mon compte, comme indiqué dans l'image suivante.
Ainsi, votre menu de navigation principal devrait afficher uniquement la connexion et la déconnexion, comme je l'ai publié dans la première paire d'images.
la source
Si vous utilisez le sous-thème Bootstrap, vous pouvez modifier ce code pour répondre à vos besoins:
Mettez ce code dans page.tpl.php dans le sous-thème / templates / à l'intérieur du bloc, où vous devez:
Je le mets après la ligne 90, auquel cas il ne s'effondre pas sur un appareil mobile, s'il faut qu'il soit replié après:
la source
Par programme, vous pouvez le faire via le
.links.menu.yml
fichier de votre propre module . Les éléments suivants placent ces liens dans le menu "Principal":Étant donné que le "nom_route" que chacun d'eux appelle déjà spécifie l'exigence de connexion / déconnexion (voir https://api.drupal.org/api/drupal/core%21modules%21user%21user.routing.yml/8.4.x ), les liens s'afficheront en fonction de l'état de connexion.
la source