it-swarm.com.de

Kann die Zugriffsliste eines Front-End-Menüelements auf bestimmte Benutzergruppen beschränkt werden?

Kann eine Komponentenansicht so konfiguriert werden, dass beim Hinzufügen zu einem Menü nur eine Teilmenge der verfügbaren Benutzergruppen angezeigt wird?

Meine Komponente verfügt über eine Front-End-Ansicht, die niemals von jedem außer Benutzern, die zu einer benutzerdefinierten Front-End-Benutzergruppe gehören, angezeigt werden darf. Ich verstehe, dass die Person, die den Menüpunkt hinzufügt, "wissen" sollte, was sie tut, aber ich bin interessiert zu wissen, ob dies auch möglich ist.

3
GDP

Nicht im üblichen Sinne, d. H. Der normalen Benutzeroberfläche, die von Joomla bereitgestellt wird. (Vorausgesetzt, Sie sprechen davon, wenn hier ein tatsächlicher Menüeintrag erstellt wird?) Erweiterungen haben keine Möglichkeit, Code auszuführen, wenn ein Menüeintrag erstellt wird. Kurze Antwort: Nein.

Normalerweise würde ich ein Plug-In vorschlagen, aber wenn ich mir com_menu Anschaue, sehe ich nur zwei JEventDispatcher Aufrufe und sie sind nicht sehr nützlich.

In /administrator/components/com_menus/models/menutypes.php Haben Sie:

// Allow a system plugin to insert dynamic menu types to the list shown in menus:
JEventDispatcher::getInstance()->trigger('onAfterGetMenuTypeOptions', array(&$list, $this));

Und in /administrator/components/com_menus/views/items/view.html.php Haben Sie:

// Allow a system plugin to insert dynamic menu types to the list shown in menus:
JEventDispatcher::getInstance()->trigger('onBeforeRenderMenuItems', array($this));

Wenn Sie eine Ebene tiefer schauen, ist das Gute an der Menüelementklasse MenusModelItem extends JModelAdmin, Dass JModelAdmin ein onContentChangeState() -Ereignis auslöst, das Sie abfangen und jedem erlauben könnten, der versucht, es festzulegen Ihre Ansicht wird veröffentlicht, wenn die Benutzergruppe falsch ist.

Abgesehen davon würde ich das nicht tun. Menüs sind nur Pfade und in unserer SEO/SEF-Welt leicht zu erraten. Der richtige Ort dafür ist in der Komponente/Ansicht selbst, und alle Personen, die nicht zur richtigen Gruppe gehören, werden abgelehnt. Sie können dies entweder tun, indem Sie Benutzer stillschweigend zurück zur Startseite lenken oder einen 404 Ausgeben.

3
Craig