nAbend
@HJW
Problem 1
Mike's Vorschlag klingt erstmal einleuchtend, also dass das einfach nur ein Artefakt ist, was von EPV bemerkt wird. Der Fall liegt hier jedoch ein wenig anders und ist auch nicht sofort ersichtlich.
Die Meldung "Warning: IN_PHPBB is not defined in /hjw/calendar/
event/main_listener.php" kommt schlicht daher, weil du im Listener 4 Funktionen
ausserhalb der Klasse
main_listener
definiert hast. Pack die Funktionen innerhalb der Klasse und greife dann per
$this->
auf die Funktionen zu.
Problem 2
Ich musste jetzt erstmal dein aktuelles ZIP holen und bei mir lokal mit EPV testen um dahinter zu kommen. Der Punkt ist, die Meldung ist irreführend, weil sie nicht direkt auf die tatsächliche Ursache hinweist. Nach einigen Versuchen sieht es für mich so aus, also ob EPV hier schlicht ins "schleudern" gerät und das hat eine ganz andere Ursache. Dazu gleich mehr, erstmal:
Die besagten Zeilen kannst auf jeden Fall löschen wie Mike schrieb, denn die gehören nicht in einen Listener sondern eigentlich zu dem erwähnten IN_PHPBB Block den man primär in Sprachdateien findet und eigentlich nicht in einen Listener gehört.
Jetzt zur Ursache: ich habe eine Weile gebraucht um das zu verstehen, weil die Meldung "Can not find '$vars = array();'-line for
event ... Are you using UNIX style linefeeds?" überhaupt keinen Sinn ergibt, wenn man sich die Datei genau anschaut. Des Rätsels Lösung ist ganz einfach der fehlende Kommentarblock zu deinem
Event. Wenn du einen
Event einrichtest,
musst du auch den zugehörigen Kommentarblock einfügen und der muss nach ganz bestimmten Regeln aufgebaut sein.
Dazu das folgende lesen, da wird gezeigt wie der Block generell aussehen muss:
https://area51.phpbb.com/docs/dev/3.2.x ... -extension
Darauf prüft EPV dann auch sehr penibel, das heisst wenn der Block nicht einwandfrei zu deinem
Event und deinem Listener passt, dann meckert EPV jede Kleinigkeit an, bis der Kommentarblock sauber definiert ist. Und dieser fehlende Block ist die eigentliche Ursache für das zweite Problem.
Und ebenfalls wichtig: zwischen der
$vars
Deklaration und dem
Event darf es keine Leerzeilen geben.
edit: hrhr der Tod war mal wieder schneller.