Ich möchte eine Registerkarte "Jetzt beitreten" im Hauptmenü nur für anonyme Benutzer anzeigen.
In der Vergangenheit habe ich das Modul Menü pro Rolle verwendet, das genau das tut.
Da es sich nur um eine Registerkarte handelt, würde ich lieber 5 oder 10 Codezeilen verwenden. Welchen Hook soll ich verwenden und mit welchen Funktionen kann die aktuelle Benutzerrolle überprüft und ein Menüelement hinzugefügt werden (oder für angemeldete Benutzer ausgeblendet werden)?
Antworten:
Ich denke, der einfachste Weg wäre,
access callback
den Pfad zu überschreiben, auf den Ihr Menü-Link verweist. Sie können dies in einem benutzerdefinierten Modul mithook_menu_alter()
unduser_is_anonymous()
als Rückruffunktion verwenden:Wenn Sie einen Menülink für diesen Pfad hinzufügen, berücksichtigt das Drupal-Menüsystem den Zugriffsrückruf und der Link wird niemandem angezeigt, der angemeldet ist.
Mit dieser Methode wird auch sichergestellt, dass angemeldete Benutzer nicht direkt auf die Seite zugreifen können, was wahrscheinlich eine gute Sache ist.
quelle
3 ist mein gewählter Ansatz. Ich mag die Idee, den Typ zu verwenden, falls ich in Zukunft zusätzliche Inhalte für Nichtmitglieder benötige.
quelle