Seite 4 von 5

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 03.03.2024 17:38
von chris1278
Ja das spielt keine rolle habs auch mit

Code: Alles auswählen

	$sql_ary = [
		'csstamp'		  => 'test',
	]
Probiert und da tat sich nix.

Habs aber mal so getestet und passiert nichts.

Oder mus ich das seperat in eine ucp_listner auslagern.

Ausserdem müsste mindestens etwas eingeblendet werden wenn man das hier macht:

Code: Alles auswählen

public function ucp_register_set_data($event)
{
	echo 'mus eingeblendet werden';
}
Das heist diese funktion wird aus irgendeinem grund nicht aufgerufen.


ich werde aber das versuchen in eine eigene ucp_listner.php auszulagern so wie du das auch hast. Glaube zwar nicht das ziwschen der normalen und der ucp listner ein Unterschied gibt aber ich werde es austesten.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 03.03.2024 18:16
von Mike-on-Tour
Was Thorsten meinte, ist dass du versuchst, die PHP-Funktion time() zu verwenden, dazu musst du natürlich auch die beiden Klammern angeben.
Wenn du nur time angibst, versucht PHP, dies als Konstante zu verwenden, die es natürlich nicht gibt und sollte eigentlich auch eine entsprechende Warnung ausgeben.

Und dein Versuch, einer als Integer definerten DB-Spalte den String 'test' zuzuordnen, ist auch zum Scheitern verurteilt.

Fang mal mit dem Buch an, das du bekommen hast.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 03.03.2024 18:23
von chris1278
Da ist nix mit integrer. Da kann man auch mit string eintragen. Nutze das ja schon mit anderem aufruf.

Code: Alles auswählen

$cs_timestamp	= time();

$sql = 'UPDATE ' . USERS_TABLE . '
SET csstamp = "' . $this->db->sql_escape($cs_timestamp) . '"
WHERE user_id = "' . $this->db->sql_escape($this->user->data['user_id']) . '"';
$this->db->sql_query($sql);


Das wird aufgerufen sobald der Benutzer das entsprechende ucp modul in seinen ucp panel aufruft und die passenden bedingungen erfüllt sind.


Da wird der time() wert (ja hatte die klammern vergessen) in einen string geladen und dieser in die usertabelle als solchen eingefügt.

Aber bei der Version die ich versuche umzusetzen die IMC mir empfohlen hat passiert gar nix.


Selbst wenn ich in der Listner.php das hier drin habe:

Code: Alles auswählen

public function ucp_register_set_data($event)
{
	echo 'mus eingeblendet werden';
}
Dann müsste er den dort angegebenen Text ja auch ausgeben. Was er nicht tut.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 03.03.2024 18:33
von IMC
chris1278 hat geschrieben: 03.03.2024 17:38 Ausserdem müsste mindestens etwas eingeblendet werden wenn man das hier macht:

Code: Alles auswählen

public function ucp_register_set_data($event)
{
	echo 'mus eingeblendet werden';
}
Leider funktioniert das debuggen nicht an jeder Codestelle mit dem Sprachkonstrukt echo. So auch in dem Event core.ucp_register_welcome_email_before.

Ich schreibe bei der Fehlersuche die Variableninhalte oder Texte in eine Datei. Dies macht das ganze auch etwas übersichtlicher wenn man mal ein größeres Array untersuchen muss.
chris1278 hat geschrieben: 03.03.2024 17:38 ich werde aber das versuchen in eine eigene ucp_listner.php auszulagern so wie du das auch hast. Glaube zwar nicht das ziwschen der normalen und der ucp listner ein Unterschied gibt aber ich werde es austesten.
Du glaubst richtig. Sollte eigentlich keinen Unterschied machen. Ich hatte es getrennt um den Code übersichtlich zu halten.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 03.03.2024 19:09
von chris1278
Ich werde das demnächst mal etwas intensiver testen. Finde schon raus was ich falsch mache.

@edit

Also zur ergänzung an dich mike was deine Aussage wegen integer angeht.

Die Spalte csstamp ist keine Integre Spalte die hat die formatierung varchar(20) In sofern sollte das eigentlich funktionieren mit der eintragung. Da wird aber nix eingetragen egal was ich mache. Mus mich aber mal mit dem Event noch was beschäftigen. Werde schon dahinterkommen.

@edit2

So habs hinbekommen. Ich hohle nuss. Habe letztenendlich den cache gelöscht dann ging das auch. der aktuelle code sieht so aus:

Code: Alles auswählen

public function ucp_register_set_data($event)
{
	echo 'test123';

	$sql_ary = [
		'csstamp'		=> time()
	];

	$sql = 'UPDATE ' . USERS_TABLE . '
			SET ' . $this->db->sql_build_array('UPDATE', $sql_ary) . '
			WHERE user_id = ' . (int) $event['user_id'];

	$this->db->sql_query($sql);
}
Selbst das echo 'test123' wird ausgegeben.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 05.03.2024 12:14
von LukeWCS
Mahlzeit

Chris, ist in dem Board wo du Thorstens Vorschlag ausprobiert hast, E-Mail aktiviert oder nicht?

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 05.03.2024 13:33
von chris1278
Ja ist es. Aber ich denke das sollte auch bei den Anderen Einstellungen tun.

@edit

Habe es getestet und es funktioniert mit allen drei Registrierungsarten.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 05.03.2024 14:23
von LukeWCS
chris1278 hat geschrieben: 05.03.2024 13:33 Habe es getestet und es funktioniert mit allen drei Registrierungsarten.
Ich meinte nicht die Registrierungsarten, ich meinte E-Mail an sich:

ALLGEMEIN > CLIENT-KOMMUNIKATION > Board-E-Mails > Aktiviere E-Mail-Funktionalität:

Deaktiviere das mal und teste erneut.

Das Folgende hatte ich übrigens übersehen, sah das erst jetzt. :oops:
chris1278 hat geschrieben: 03.03.2024 19:09 Habe letztenendlich den cache gelöscht dann ging das auch.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 05.03.2024 14:35
von chris1278
Also das sollte kein Problem darstellen ob das Forum E-Mails versendet oder nicht weil das Event ja greift und den Benutzer erstellt auch wenn die E-Mail nicht gesendet wird. Aber ich werde das später noch mal testen indem ich diese ganze E-Mail Geschichte deaktiviere.

Re: benutzerstatus abfragen bzw. vergleichen

Verfasst: 05.03.2024 14:38
von LukeWCS
chris1278 hat geschrieben: 05.03.2024 14:35 Also das sollte kein Problem darstellen ob das Forum E-Mails versendet oder nicht weil das Event ja greift
Eben darum solltest das testen, weil ich nämlich aufgrund des Problems, dass du hier hattest, ich mir RT an der Stelle näher angeschaut habe, von wo ja Thorsten den Code hat. Dabei habe ich eine weitere Macke von RT entdeckt die wir auch noch beheben müssen und die betrifft dich jetzt zwangsläufig auch.

Teste es und dann dürftest du feststellen, dass dein Event Code nicht mehr ausgeführt wird. Darum auch mein Beitrag von 12:14. Dass es in deinem Fall am Cache lag, hatte ich erst später gesehen, hat aber mit dem Bug nichts zu tun, den ich meine.