Ergebnis 1 bis 5 von 5

Thema: Hook

  1. #1
    Contao-Nutzer
    Registriert seit
    13.11.2011.
    Beiträge
    29

    Standard 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ß

  2. #2
    Contao-Nutzer
    Registriert seit
    13.11.2011.
    Beiträge
    29

    Standard

    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.

  3. #3
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    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);
    Meine Erweiterungen: League Manager | Forum

  4. #4
    Contao-Nutzer
    Registriert seit
    13.11.2011.
    Beiträge
    29

    Standard

    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.

  5. #5
    Gesperrt
    Registriert seit
    16.11.2011.
    Ort
    Schweiz
    Beiträge
    6

    Standard

    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

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •