eventListener.xml

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Durch Eventlistener ist es möglich bestehende PHP Dateien zu erweitern oder zu manipulieren.
    Durch die eventListener.xml ist es möglich Eventlistener innerhalb des WSC zu registrieren und entsprechend auszuführen. Ein Eventlistener hat zur Aufgabe PHP Code an gewissen Stellen innerhalb des Frameworks oder einer Endanwendung auszuführen ohne die Dateien direkt bearbeiten zu müssen. Die eventListener.xml wird wie alle PIP Dateien in xml geschrieben und sollte "eventListener.xml" heißen.

    Die XSD auf GitHub


    github.com/WoltLab/WCF/blob/master/XSD/eventListener.xsd

    Package.xml



    Innerhalb der package.xml kann man der Installations- bzw. der Updateroutine durch folgenden instruction-Tag sagen, dass nun einer oder mehrere Eventlistener installiert bzw. geupdatet werden soll(en).

    XML Source Code

    1. <instructions type="install">
    2. <instruction type="eventListener" />
    3. </instructions>


    Mögliche Parameter



    TagParameterDefinition
    <data>-Einleitendes Elternelement
    <import>-Element zum Import neuer Eventlistener
    <delete>-Element zum Löschen von bestehenden Eventlistener
    <eventlistener>nameBegrenzungselement um verschiedene Eventlistener zu verarbeiten. Der Parameter "name" ist ab dem WSC 3.1 zur internen Identifizierung des Eventlisteners neu hinzugekommen.
    <eventclassname>-Namespace + Klassenname auf die Zieldatei, in der wir uns einklinken wollen
    <eventname>-Eventname in der Zieldatei, in der wir uns einklinken wollen
    <listenerclassname>-Namespace + Klassenname des Eventlisteners
    <niceValue>-Gibt die Reihenfolge der Abarbeitung von Eventlistener an (minimal -128, maximal 127). Gibt es zwei Eventlistener mit demselben niceValue werden diese der Reihenfolge der Installierung der Plugins ausgeführt.
    <inherit>-Gibt an, ob der Eventlistener auch in vererbenden Klassen ausgeführt werden soll. 1 für Ja, 0 für nein
    <environment>-Gibt an, ob der Eventlistener innerhalb des Backend (ACP) oder im Frontend (Endanwendung) ausgeführt werden soll. (user/admin)


    Beispiel eventListener.xml


    XML Source Code: eventListener.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/2019/eventListener.xsd">
    3. <import>
    4. <!-- Test -->
    5. <eventlistener>
    6. <eventclassname>ea\data\test\TestPage</eventclassname>
    7. <eventname>readData</eventname>
    8. <listenerclassname>ea\system\event\listener\TestListener</listenerclassname>
    9. <niceValue>0</niceValue>
    10. <inherit>0</inherit>
    11. <environment>user</environment>
    12. </eventlistener>
    13. </import>
    14. </data>
    Display All




    Gut zu wissen


    • Generell kann man sich in jede PHP Datei einklinken, in der die Codezeile

      PHP Source Code

      1. EventHandler::getInstance()->fireAction($this, 'nameOfTheEvent');

      vorhanden ist.
    • Beachten Sie bitte, dass sich die Events auch in Kindklassen aufrufen lassen
    • Sollten Sie sich in ein Plugin eines Entwicklers einklinken wollen, scheuen sie nicht davor, ihm ein passendes Event vorzuschlagen, wo sie sich einklinken möchten.


    Ihr habt Fragen oder Anregungen? Lob oder Kritik? Lasst es mich doch durch einen Kommentar von euch wissen!

    8,220 times viewed