Ausgefallen gut ins Netz!

Hinter dem Namen Wicked Software stehen ausgefallen gute und begeisterte Entwickler, für die Software wesentlich mehr ist als funktionierender Code. Wicked Software hat sich auf Joomla! spezialisiert und bietet moderne und flexible Erweiterungen.

Wir schreiben in unseren Blog mit und über Joomla!, unsere Software, Tricks & Tipps und alles was uns in den Sinn kommt und uns nützlich erscheint.

  • Administrator
  • Backend
  • ACL
  • Menü
Handgeschriebenes Menü auf Biergartentafel

Backend-Menü in Stein gemeißelt?

Bei jedem Update bringt Joomla! Verbesserungen und neue Funktionen mit, aber oft kennen sie außer den Entwicklern nur wenige. Ein Beispiel dafür sind individuelle Backend-Menüs. Das Einrichten ist beim ersten Mal nicht wirklich intuitiv, aber wer Kunden ins Backend lassen will oder muss wird davon begeistert sein.

Wir haben bei Wicked Software verschiedene Komponenten entwickelt, die als Verwaltungstools teilweise nur im Backend eingesetzt sind oder zu 90% ihre Funktionalität im Backend entfalten. Für diese gibt es keine Frontend-Bearbeitung.

Das bedeutet, die Kunden müssen im Backend arbeiten. Das Menü in der Administration ist eine feste Größe und obwohl man hier auch schon länger einiges gestalten kann, ist es doch ziemlich starr.
Benutzer dürfen trotz Backend-Zugang nur das vorfinden, was für sie freigegeben ist. Es ist ein wenig beliebter Sport der Administratoren, mittels Benutzergruppen und Zugriffsebenen dieses Menü zurechtzustutzen. Trotzdem fühlt sich das Ergebnis nicht immer gut an. Doch nun gibt es eine bessere Lösung:

Individuelles Backend-Menü

Das gibt es seit Version 3.7 – und um ehrlich zu sein – so ganz intuitiv ist das nicht einzusetzen. Aber fantastisch, wenn es erst mal geschafft ist. Daher habe ich mich entschlossen, ein Tutorial draus zu machen.

Das Prinzip ist in Backend und Frontend gleich.

  • Erstelle eine Benutzergruppe und ihre Zugriffsebene und weise der Gruppe Benutzer zu.
  • Erstelle ein Menü für diese Gruppe
  • Erstelle ein Menümodul für dieses Menü und diese Benutzergruppe
  • Fülle das Menü mit den gewünschten Menüeinträgen auf Backend-Views

Fertig, alles wie immer. Der Teufel steckt jedoch, wie üblich, im Detail.

Vor allem: Der Administrator muss verstehen wie das ACL in Joomla! funktioniert. Genau wie im Frontend gibt es Zugriffsrechte und Sichtbarkeitsebenen, die zu den Benutzern passen müssen. Wer eine Standardinstallation hat muss sich zum Beispiel mit der Sichtbarkeitsebene "special" besonders auseinandersetzen. Je nachdem welche Benutzergruppen hier definiert sind, werden sonst zu viele oder zu wenig Elemente gezeigt (Modul Administrator - Toolbar).

So soll es werden:

So soll das Menü aussehen

Der Administrator unserer Komponenten soll nach der Anmeldung im Backend dies sehen. Die Komponenten sind direkt mit einem Klick erreichbar, nicht erst als Unterpunkte des Komponenten-Menüs. Auch der Media-Manager soll direkt zugänglich sein.

Schritt für Schritt

Vor Aktionen an Benutzergruppen und Rechten empfiehlt sich immer ein Backup!

Voraussetzung ist: Es gibt eine Benutzergruppe, hier "Wicked Administrator" (kann direkt unter Public oder Registered liegen), eine Zugriffsebene "Wicked Admin" und ein paar User, die der Gruppe zugeordnet sind. Die Gruppe "Wicked Administrator" hat in der Globalen Konfiguration den "Adminstratorzugang" bekommen.

Benutzergruppe mit Administratorzugang

Menü anlegen

Einen neuen Menüeintrag anlegen

Hier wird ein Menü erzeugt, wie gewohnt, aber mit der Option "Administrator". Damit öffnet sich eine weitere Auswahl: Menüeinträge importieren. Das Exportieren und Importieren von Menüs ist ein anderes Kapitel, das will ich hier nicht behandeln. Hier wird ein nagelneues kleines Menü erstellt.

Modul anlegen

Das neue Menü muss ein Modul haben, also geht es im Modul-Manager weiter. Ganz unauffällig ist hier eine Auswahl platziert, mit der sich zwischen den Backend- und Frontend-Modulen hin-und herschalten lässt.

Modul Manager Administration

Das neue Menü kommt auf der Position des normalen Administrationsmenüs (menu). Und hier kommts: Zugriffsebene ist "Wicked-Admin". Hier entscheidet sich, wer das Menü zu Gesicht bekommt.

Im Unterschied zum Frontend gibt es bei diesem Modul keine Menüzuordnung, das Backend-Menü ist immer sichtbar, aber dafür gibt es eine Option "Menü überprüfen".
Was das macht? Schauen wir was passiert, wenn wir hier "ja" wählen.

Ein Menümodul anlegen

Eine Anwendung, in der Benutzer, Module, Inhalte nicht administrierbar sind kann nicht funktionieren. Daher gibt es eine Warnung und einen Wiederherstellungsmodus, falls ein Menü nicht die wesentlichen Punkte enthält. Das ist der Rettungsanker, wenn sich ein Administrator versehentlich aussperren würde. Wer weiß, was er tut, kann diese Meldung ausschalten, indem er hier bei Überprüfen die Option "nein" wählt.

Warnung bei fehlenden zentralen Menüpunkten

Das Menü füllen

Aufrufen des Menu-Managers

Der Menu-Manager bietet jetzt das neue Menü an. Wie im Frontend kann man nun Menüpunkte definieren. Auch auf die Views eigener Komponenten, vorausgesetzt, diese haben ein XML File für die Menüpunkte.

Menüeintragstyp Medien

Die Benutzer bekommen Zugriff auf die Bilder im images-Verzeichnis. Also wähle ich im Menüeintragstyp Medien - Bilderordner aus und nenne dann den Menüpunkt "Bilder", denn das ist für die Zielgruppe einfacher.

Eigene Komponenten im individuellen Menü

Menüeintragstyp eigene Komponente

Nun soll auch die eigene Komponente als Menüpunkt aufgenommen werden, nicht als Unterpunkt der Komponenten sondern direkt mit einem Klick erreichbar.

Das also ist neu. Bis zur Version 3.7 hat man als Entwickler für Backend Views gewöhnlich keine XML-Files erstellt. Für diesen Zweck ist das aber nötig und genau wie im Frontend steht die Datei im Layout-Verzeichnis. In meinem Fall in administrator/components/com_wickedteam/views/wickedteam/tmpl/default.xml . Die Datei ist denkbar einfach - sie erzeugt nur einen Menüpunkt. Die default.xml für die Einstiegsseite von Wicked Team sieht so aus:

<?xml version="1.0" encoding="utf-8"?>
<metadata>
	<layout title="COM_WICKEDTEAM">
		<message>
			<![CDATA[COM_WICKEDTEAM]]>
		</message>
	</layout>
</metadata>

Nochmal dasselbe für die Komponente Wicked Finance und fertig ist das neue Menü.

Neues Backend Menü

Hier ist es, das neue Menü in voller Pracht. Jeder Benutzer der Benutzergruppe "Wicked Administrator" bekommt es gleich bei der Anmeldung zu sehen.

Résumé

Ganz ohne ACL geht es auch beim individuellen Menü nicht. Es kann ganz unterschiedliche Konstellationen geben. Aber es ist unvergleichlich einfacher, ein Modul für eine Benutzergruppe sichtbar zu machen als für eine Benutzergruppe viele einzelne Funktionen zu verbieten. Und es ist viel angenehmer, den Benutzern ihre Funktionen unter eigenen aussagekräftigen Namen anzubieten, statt als Unterpunkte eines Komponenten-Menüs.


Bildnachweis: Biergarten Menü: Hanne Kamali, München