Dieser Artikel ist bereits über 2 Jahre alt. Das gezeigte Vorgehen ist vielleicht nicht mehr aktuell.
Copyright bei Patrick Froch und easy Solutions IT. Dieses Werk ist lizenziert unter Creative Commons BY-NC-SA.
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, inconfig.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 KlasseMyBanMemberClass
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 KlasseMyBanMemberClass
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:
Anpassen der Methode
Damit dies nun auch das Umschalten funktioniert, müssen wir unsere MethodebanFunction
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!
Kommentare
Einen Kommentar schreiben