Ich suche nach einer Möglichkeit, einen Link im Hauptmenü auszublenden / anzuzeigen, wenn der aktuelle Benutzer eine bestimmte Berechtigung hat. Der Menüpunkt wurde bereits erstellt und der Menüpunkt ist mit einem Knoten verknüpft, der von hook_node_access () gesteuert wird.
7
Antworten:
Standardmäßig blendet Drupal alle Menüelemente aus, auf die der Benutzer keinen Zugriff hat. Am einfachsten ist es daher, den ausgewählten Zugriff für die Seite zu benötigen, auf die das Menüelement verweist.
quelle
node_access
verwendet wird, um Zugriffsrechte abzurufen. Eine einfache Implementierung reicht alsohook_node_access()
nicht aus.Sie können den mit "node /% node" verknüpften Zugriffsrückruf mithilfe von hook_menu_alter () ändern und dann den Code für Ihren Zugriffsrückruf basierend auf dem Code von node_access () schreiben . Es gibt bestimmte Fälle, die Sie weiterhin behandeln möchten
node_access()
. Beispielsweise würden Benutzer mit der Berechtigung "Knotenzugriff umgehen" immer auf den Knoten zugreifen.Beachten Sie, dass der Zugriffsrückruf entscheidet, wer einen Link sehen und wer auf eine Seite zugreifen kann, wenn der Benutzer die URL direkt in die Adressleiste des Browsers schreibt.
quelle
Möglicherweise möchten Sie das Drupal-Modul menu_item_visibility berücksichtigen
So zitieren Sie die Projektseite:
Oder das menu_views- Modul, das einen auf Ansichten basierenden Ansatz für die Menügenerierung bietet (der meiner Meinung nach basierend auf dem Benutzer enthalten ist).
quelle