Wie kann ich einen Login-Link zum Menü "Hauptnavigation" hinzufügen?
Wenn ein Benutzer auf den Link klickt, sollte er zur Seite / user / login gelangen. Sobald sie sich angemeldet haben, sollte sich der Link ändern und "Abmelden" anstelle von "Anmelden" sagen.
Gibt es eine Möglichkeit, einen solchen Link hinzuzufügen?
8
navigation
GTS Joe
quelle
quelle
Antworten:
Wir müssen uns nicht auf das Bootstrap-Thema oder unsere Programmierkenntnisse verlassen, um den Link " Abmelden " des Systems in ein anderes Menü zu verschieben. Drupal ermöglicht es uns, es einfach zu machen.
Zusätzlich können wir einfach zwei benutzerdefinierte Links " Melde mich hier bitte an " und " Bring mich da raus " mit den Pfaden / user / login und / user / logout relativ erstellen . Dies ist besser, da wir im Gegensatz zum System-Link "Abmelden" beliebig viele Anmelde- / Abmeldelinks mit benutzerdefinierten Attributen erstellen können. Wenn sich der Benutzer angemeldet hat, wird nur der Link " Abmelden " angezeigt und umgekehrt. Die einzige Einschränkung ist, dass Sie wahrscheinlich beide Links zusammen sehen, da Sie zum Zeitpunkt des Testens der Links angemeldet sind. Dies ist normal, da Sie als Administrator die Berechtigung "Zu einer beliebigen Seite verlinken " haben. Deaktivieren Sie diese Berechtigung und versuchen Sie es erneut.
quelle
1) Bearbeiten Sie das Menü und fügen Sie den Abmeldelink hinzu.
2) Jetzt müssen Sie nur noch Ihren Hauptmenü- Linkblock konfigurieren
Aktivieren Sie dann in Rollen das Kontrollkästchen ☑ Authentifizierte Benutzer und ☑ Administrator
3) Erstellen Sie nun ein weiteres Menü (
/admin/structure/menu
) mit dem Link "Login" und allen anderen benötigten Menü-Links.4) Gehen Sie dann zu Blöcke (
/admin/structure/block
) im Hauptmenü (vorausgesetzt, Sie verwenden Bartik und haben möglicherweise einen anderen Namen, wenn Sie ein benutzerdefiniertes Thema verwenden). Klicken Sie auf Hinzufügen, und fügen Sie das gerade erstellte Menü hinzu und konfigurieren Sie es. Dieses Mal für Rollen nur das Häkchen ☑ Anonym setzenquelle
:)
Es gibt einen besseren Weg, dies zu tun. Sie möchten ein eigenes Plugin erstellen und die MenuLinkDefault-Klasse erweitern. Der beste Ort, um nachzuschauen, ist das Drupal / User-Modul, das die LoginLogoutMenuLink-Implementierung bereitstellt.
Sie können entweder Ihr eigenes Plugin definieren, wenn Sie beispielsweise den Text oder die Logik ändern möchten. Alternativ können Sie es einfach auf das vorhandene Plugin verweisen, um Zeit zu sparen und einfach das vorhandene Implmee zu platzieren. Hier ist ein Beispielcode:
Einfache Version:
Erstellen
my_module/my_module.links.menu.yml
Erweiterte Version:
my_module/src/Plugin/Menu/
Ordnernamespace Drupal\my_module\Plugin\Menu;
class LoginLogoutMenuLink extends MenuLinkDefault
zuclass MyLoginLogoutMenuLink extends MenuLinkDefault
my_module.links.menu.yml
wie oben beschrieben, aber stellen Sie sicher, dass Sie die Klasse so benennen, wie Sie sie jetzt benannt haben, und zeigen Sie auf Ihr Modul. Siehe Beispiel unten.Sie
my_module/src/Plugin/Menu/MyLoginLogoutMenuLink.php
sollten wie folgt aussehen:Sie
my_module/my_module.links.menu.yml
sollten wie folgt aussehen:Ich hoffe das hilft jemandem.
quelle
Sie können dies mit dem Bootstrap 3 Drupal 8- Design tun, da dieses Design diese Funktion standardmäßig bereitstellt. Ich poste das Bild meiner Drupal 8-Testversion. Eine mit Anmeldeseite und eine mit Abmeldeseite.
Suchst du so etwas?
Befolgen Sie die folgenden Schritte.
1. Gehen Sie zu Strukturen> Blöcke. Stellen Sie im Abschnitt Navigation die folgende Konfiguration sicher.
2. Gehen Sie zu Strukturen> Menüs> Menü Benutzerkonto und deaktivieren Sie Mein Konto, wie in der folgenden Abbildung gezeigt.
In Ihrem Hauptnavigationsmenü sollten also nur Anmelden und Abmelden angezeigt werden, wie ich im ersten Bildpaar angegeben habe.
quelle
Wenn Sie das Bootstrap-Unterthema verwenden, können Sie diesen Code an Ihre Anforderungen anpassen:
Fügen Sie diesen Code in page.tpl.php im Unterthema / templates / innerhalb des Blocks ein, wo Sie Folgendes benötigen:
Ich setze es nach der 90-Zeile, in welchem Fall es auf einem mobilen Gerät nicht zusammenbricht, wenn es notwendig ist, dass es nach dem Zusammenlegen gefaltet wird:
quelle
Programmgesteuert können Sie dies über die
.links.menu.yml
Datei Ihres eigenen Moduls erreichen . Im Folgenden werden diese Links in das Hauptmenü eingefügt:Da der "Routenname", den jeder von diesen aufruft, bereits die Anmelde- / Abmeldeanforderung angibt (siehe https://api.drupal.org/api/drupal/core%21modules%21user%21user.routing.yml/8.4.x ) werden die Links je nach Anmeldestatus angezeigt.
quelle