-
Hook
Hallo,
ich habe ein Registrierungsmodul geschrieben, welches die Daten in die Tabelle speichert. Es soll aber ein Teil der Daten aber noch in die tl_members geschrieben werden. Wie kann ich am besten ein Objekt erzeugen, welches die Daten in die Tabelle speichert. Spontan würde ich den Hook activateAccount nehmen, aber weiß nicht so recht wie.
Gruß
-
Also ich hab mir jetzt folgendes gedacht:
in der config von efg speichere ich folgenden Hook:
PHP-Code:
$GLOBALS['TL_HOOKS']['createNewUser'][] = array('MyClass', 'myCreateNewUser');
und die php-datei "MyClass" befindet sich im Hauptordner von efg (bei Efp, ect.)
PHP-Code:
class MyClass extends Frontend{
public function myCreateNewUser($intId, $arrData)
{
$sql= "INSERT INTO tl_member (`id`, `tstamp`, `firstname`, `lastname`, `email`, `username`) VALUES (NULL, ". time() .",'Max', 'Muster', 'kahle@vers-leipzig.de','kahle@vers-leipzig.de'";
MySQL::db()->query($sql);
}
}
Die Daten werden aber nicht in die DB gespeichert. Contao wirft auch keine Fehlermeldung aus, obwoh DisplayError true ist. ich vermute ja, das der Hook nicht aufgerufen wird.
-
Evtl liegt es am Datenbankaufruf.
Du kannst hier die Contao-Funktionalitäten nutzen:
Code:
$this->Database->prepare("...")->execute(a,b,c)
Wenn du prüfen möchtest, ob dein Code ausgeführt wird, kannst du einen Log-Eintrag hinterlassen:
Code:
$this->log("Wird ausgeführt", 'MyClass -myCreateNewUser', TL_INFO);
-
Hm,
PHP-Code:
<?php
class MyClass extends Frontend{
public function myCreateNewUser($intId, $arrData)
{
$this->Database->prepare("INSERT INTO tl_member (`firsname`, `lastname`,`email`) VALUE ('A','b','c')")->execute()
$this->log("Wird ausgeführt", 'MyClass -myCreateNewUser', TL_INFO);
}
}
?>
Dies wird nicht ausgeführt. Den Log finde ich auch nicht.
-
Wird denn der Rest des Codes ausgeführt? Kannst du die Daten nicht gleich dort in tl_member schreiben?
Der Hook createNewUser wird nur aufgerufen, wenn ein neuer Benutzer über die Registration von contao (im Modul Registration, funktion createNewUser) erstellt wird.
Gruss
kruemi