Seite 1 von 1

Frage wegen eines core. events für den Listener

Verfasst: 15.05.2024 19:32
von chris1278
Hallo werte Foren gemeinde. Ich bin ja dabei eine Extension zu schreiben.

[3.3] CF Welcome Post Topic (fork)

Im Grunde funktioniert diese Extension so wie ich mir das vorstelle.

Aktuell nutze ich für den aufruf der Funktion in der listner.php folgendes

Code: Alles auswählen

public static function getSubscribedEvents()
{
	return [
		'core.page_header_after'			=> 'cf_wptfork_run',
	];
}

Das funktioniert auch soweit ganz gut.

Nur würde ich gern ein anderes event nutzen aber das funktioniert nicht wirklich.

Es geht sich eigentlich wie folgt ab. In dem Startenden aufruf wird erst dies hier geprüft:

Code: Alles auswählen

if ($this->user->data['is_registered'] && $this->user->data['user_lastvisit'] == 0)
Damit wird geprüft ob der Benutzer registriert ist und ob schonmal eingeloggt. trifft eins von beiden nicht zu passiert gar nichts.

Treffen beide zu wird der gewünschte Begrüßung Beitrag auch erstellt. Es spielt auch keine Rolle welche Aktivierung Methode im ACP eingestellt ist.

Weil es wird bei Login geprüft ob der eben der Benutzer registriert ist und noch nie eingeloggt war.


Allerdings wird diese Prüfung mit dem aktuell verwendeten core.event bei jedem seitenaufruf geprütft. Das halte ich im Grunde nicht für sehr sinnvoll.

Daher die Frage welches der core events würde sich am besten dazu eignen die funktion aufzurufen nach login.

Weil eigentlich reicht ne prüfung bei login aus.

Re: Frage wegen eines core. events für den Listener

Verfasst: 15.05.2024 20:43
von Kirk
Hi
Hast du es mal mit core.user_setup bzw. mit core.user_setup_after getestet?
Ansonsten mal die Events durchschauen.

Re: Frage wegen eines core. events für den Listener

Verfasst: 16.05.2024 07:13
von Mike-on-Tour
Würde eigentlich zu Beginn jeder Session völlig ausreichen, dazu findet sich bestimmt was. :wink:

Re: Frage wegen eines core. events für den Listener

Verfasst: 31.05.2024 20:45
von LukeWCS
Damit hier keine losen Enden entstehen und das Thema als abgeschlossen betrachtet werden kann:
Mike-on-Tour hat geschrieben: 16.05.2024 07:13 Würde eigentlich zu Beginn jeder Session völlig ausreichen
Jupp, zu diesem Entschluss kam ich vorgestern unabhängig auch. ^^ Als das Projekt in eine Phase kam, wo man sich mit solchen Details befassen konnte. Entschieden habe ich mich schlussendlich für

core.session_create_after

Das wird nur in 2 Situationen getriggert: Login und Logout. Und bei dem Event sind auch alle benötigten Objekte vorhanden, die von chris1278's Ext benötigt werden. Somit die deutlich bessere Variante als core.page_header_after, was auf jeder Seite des Foren-Frontends ausgeführt wird und somit unnötige Event-Hooks getriggert werden.