Wie kann ich neue Bedingungen zu vorhandenen Bedingungen hinzufügen, die bestimmen, ob ein Menüelement sichtbar ist? Diese Bedingungen sollten nicht auf Berechtigungseinstellungen beschränkt sein.
Beispiel für einen Anwendungsfall (nicht unbedingt der Grund für diese Frage): Angenommen, ich habe einen Inhaltstyp, für den Benutzer nur einen Knoten erstellen dürfen. Ich habe einen Menüpunkt zum Hinzufügen dieser Art von Inhalten. Wenn der Benutzer jedoch bereits einen Knoten dieses Inhaltstyps erstellt hat, möchte ich den Menüeintrag ausblenden. Mein erster Gedanke ist, eine Abfrage auszuführen, um die Existenz eines Knotens zu überprüfen, der vom aktuellen Benutzer erstellt wurde und der einen bestimmten Inhaltstyp aufweist. Falls vorhanden, verbergen Sie den Menüpunkt.
Ich würde denken, diese Art von Funktionalität sollte dort eingehen hook_menu_alter()
und die erforderliche Logik hinzufügen. Ich bin mir jedoch nicht sicher, wie ich das tun soll, ohne die vorhandenen Prüfungen zu umgehen, z. B. zu prüfen, ob der Benutzer Berechtigungen zum Erstellen dieser Art von Inhalten hat. Müsste ich diese Logik in meinen eigenen Zustand einbeziehen? Oder kann ich die vorhandene Zugriffslogik erweitern, ohne sie zu überschreiben?
Bearbeiten: Einige Leute scheinen sich darauf zu konzentrieren, zu antworten, "Wie beschränke ich einen Benutzer auf das Erstellen eines Knotens eines Inhaltstyps". Das ist hier nicht die Frage. Die Frage ist, wie ich einem Menüelement benutzerdefinierte Zugriffsbedingungen hinzufüge.