Artikel
von Patrick Froch

Nachdem ich in dem Artikel " Contao: Eine eigene Aktion anlegen " gezeigt habe, wie man eine eigene Aktion in Contao umsetzt, möchte ich diese Beispielanwenung heute etwas erweitern. In diesem Beitrag soll es darum gehen den Status des Hakens "Login erlauben" der Mitglieder über das Icon unserer Aktion anzuzeigen. Zusätzlich wird die Klasse so erweitert, dass bei einem erneuten Klick der Haken wieder gesetzt wird. Wir erstellen also unsere eigene Toggle-Aktion.

Wer den Artikel "Contao: Eine eigene Aktion anlegen" noch nicht kennt, sollte zunächst dort beginnen, da dieser Beitrag darauf aufbaut!

Zur Erinnerung

Wir haben im oben genannten Beitrag unsere Erweiterung erstellt und hatten am Ende folgende Ordnerstruktur: Im DCA habe wir den Key festgelegt, in config.php haben wir Contao gesagt, welche Methode bei diesem Key aufgerufen werden soll und in unserer Klasse (MyBanMemberClass) habe wir die Funktion hinterlegt, die ausgeführt werden soll. Wir werden nun damit beginnen, einen Button_Callback anzulegen und mit diesem je nach Status des Hakens "Login erlauben" ein anderes Icon anzuzeigen.

DCA

Die Methode für den Callback wird einfach in die Klasse MyBanMemberClass eingefügt. Ein neuer Eintrag in der Datei /config/autoload.php ist somit nicht nötig, da die Klasse bereits bekannt ist. Wir können also sofort dazu übergehen in der Datei /dca/tl_member.php den Callback einzutragen: Im letzten Artikel haben wir das Array $GLOBALS['TL_DCA']['tl_member']['list']['operations']['banmember'] erstellt. Dieses erweitern wir nun in Zeile 8 um das Feld button_callback und weisen wieder ein Array zu, in dem als erster Eintrag der Name der Klasse steht und als zweites der Name der Methode. Da die Klassen der Callbacks direkt ins DCA eingetragen werden, müssen wir hier, anders als beim Key nichts in /config/config.php eintragen.

Der Callback

Nun fügen wir die Methode in unsere Klasse MyBanMemberClass ein: Ich habe die Methode aus dem letzten Artikel gekürzt, damit es nicht zu unübersichtlich wird. In Zeile 14 wird dem Namen des Icons ein _disabled angehängt, wenn der Haken nicht gesetzt ist. Aus system/moduels/esitaction/assets/img/banmember.png wird also system/moduels/esitaction/assets/img/banmember_disabled.png. Das entsprechende Icon spreichern wir im gleichen Ordner wie das original Icon. Nun sollte man am Icon den Status ablesen können. Wenn wir nun einem Mitglied das Login verbieten, könnte dies z.B. so aussehen:

esitbanmember_disabled

Wenn wir das Login wieder erlauben, sieht dies ungefähr so aus:

esitbanmember_enabled

Anpassen der Methode

Damit dies nun auch das Umschalten funktioniert, müssen wir unsere Methode banFunction noch etwas anpassen: In Zeile 11 befindet sich eine Abfrage, die testet, ob der Haken gesetzt ist. In Zeile 12 wird das Login wie bisher verboten und in Zeile 14 wird es erlaubt. Es wechselt also bei jedem Klick. Somit haben wir unsere Toggle-Funktion. In Zeile 22 bzw. 24 wird dann noch eine entsprechende Meldung ausgegeben. Der Vollständigkeit halber hier noch einmal die ganze Klasse: Fertig, das war's auch schon wieder!

Zurück

Kommentare

Aufgrund der unklaren Rechtslage durch die DSGV habe ich mich entschlossen, die Kommentare bis auf Weiteres zu deaktivieren.