Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: Contao 4.4.5: Hook für Registration Modul

  1. #1
    Contao-Nutzer
    Registriert seit
    17.01.2020.
    Beiträge
    111

    Standard Contao 4.4.5: Hook für Registration Modul

    Hallo an alle!

    Ich habe das Registration Module auf meine Seite eingebaut und es funktioniert. Zusätzlich zu den Spalten in der tl_member habe ich noch eine weitere Spalte angelegt, die mit dem erfolgreichen Speichern der Daten aus dem Registration Formular befüllt werden muss. Gibt es eine Möglichkeit, diese zusätzliche Spalte nicht im Frontend befüllen zu lassen? Zum Beispiel kann man ja sowas nachträglich innerhalb eines Hooks einbauen (z.B. ProcessFormData Hook), jedoch funktioniert keiner dieser Hooks bei diesem Module. Hat da jemand eine Lösung / Idee?

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    processFormData ist für Formulare aus dem Formulargenerator. Für Mitglieder gibt es andere Hooks: https://docs.contao.org/dev/tags/hook-member/ » https://docs.contao.org/dev/referenc...createNewUser/

  3. #3
    Contao-Nutzer
    Registriert seit
    17.01.2020.
    Beiträge
    111

    Standard

    Danke für die schnelle Antwort, aber die Hooks habe ich leider schon gesehen und bringen meines Erachtens nichts. Ich möchte ja mit dem Speichern der Formulardaten die zusätzliche Spalte befüllen und nicht erst, wenn der User im Anschluss angelegt wurde. Ich stelle mal die Situation dar, hätte ich im Ausgangsposting der Klarheit wegen schon machen sollen.

    Ich habe ein mehrseitiges Formular (mp_forms). Auf der 1. Seite stehen 4 Inputs, die zusammen die zusätzliche Spalte in tl_member ergeben sollen. Auf der 2. Seite ist das Registration Formular, dass mit Submit nur dessen Daten an die DB übergibt, aber nicht die Daten auf der 1. Seiten (zu mal ich diese ja noch zu der Spalte zusammenfassen müsste, z.B. in einem passenden Hook). Da aber die ganzen Form Hooks nicht bei dem Registration Module feuern, bin ich gerade etwas ratlos.

    Mir ist gerade noch die Idee gekommen, dass ich die Werte der 1. Seite ja in ein Hidden Field auf der 2. Seite übertragen kann, aber dann könnte es ja theoretisch jeder editieren, bevor das Formular abgeschickt wird...

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Zitat Zitat von asfga Beitrag anzeigen
    Ich habe ein mehrseitiges Formular (mp_forms). Auf der 1. Seite stehen 4 Inputs, die zusammen die zusätzliche Spalte in tl_member ergeben sollen. Auf der 2. Seite ist das Registration Formular, dass mit Submit nur dessen Daten an die DB übergibt, aber nicht die Daten auf der 1. Seiten (zu mal ich diese ja noch zu der Spalte zusammenfassen müsste, z.B. in einem passenden Hook). Da aber die ganzen Form Hooks nicht bei dem Registration Module feuern, bin ich gerade etwas ratlos.

    Mir ist gerade noch die Idee gekommen, dass ich die Werte der 1. Seite ja in ein Hidden Field auf der 2. Seite übertragen kann, aber dann könnte es ja theoretisch jeder editieren, bevor das Formular abgeschickt wird...
    Das heißt du benutzt entgegen deinen ursprünglichen Angaben das Registrierungsmodul gar nicht, sondern hast ein Formular aus dem Formulargenerator? Dann benötigst du die Hooks des Formulargenerators. Falls du in deinem Formular eingestellt hast, dass die Daten direkt in eine Datenbanktabelle gespeichert werden sollen - und du nun ein Feld, das nicht aus dem Formular kommt, mit Werten beim speichern befüllen willst, dann ist der storeFormData Hook der richtige.

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Übrigens solltest du dringend auf Contao 4.4.54 aktualisieren.

  6. #6
    Contao-Nutzer
    Registriert seit
    17.01.2020.
    Beiträge
    111

    Standard

    Doch ich benutze dennoch das Registration Module. Warum weshalb ist hier genauer geschildert: https://community.contao.org/de/show...ung-verwendbar

    Der storeFormData Hook funktioniert bestimmt nicht beim Registration Modu oder? Hättest du denn eine Idee, wie es mit dem Modul machbar wäre? Die Variante mit dem Hiddenfield und der Value aus der Session Variable ist sicherlich zu unsicher.

    Danke für den Update Hinweis!

    Edit: Zum Verständnis: Auf der ersten Seiten verwende ich Inputs aus dem Formulargenerator und auf der 2. Seite hab ich das Modul per Inserttags eingefügt.
    Geändert von asfga (23.11.2020 um 19:26 Uhr)

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Zitat Zitat von asfga Beitrag anzeigen
    Edit: Zum Verständnis: Auf der ersten Seiten verwende ich Inputs aus dem Formulargenerator und auf der 2. Seite hab ich das Modul per Inserttags eingefügt.
    Ah ok... also ich kann mir nicht vorstellen, dass das so funktionieren kann . Wenn du auf der letzten Seite dann auf "Submit" klickst, werden ja nur die Daten eines der Formulare geschickt bzw. verarbeitet (also entweder das Formular aus dem Formulargenerator oder das Formular aus dem Registrierungsmodul).

    Spontan fällt mir für dein Vorhaben auch keine saubere, schlaue Lösung ein.

  8. #8
    Contao-Nutzer
    Registriert seit
    15.03.2010.
    Ort
    AT
    Beiträge
    204

    Standard

    Im tl_member beim entsprechenden Feld den save_callback verwenden.
    Der wird auch im Frontend ausgeführt.

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['kundennummer'] = array
    (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['kundennummer'],
        
    'exclude'   => true,
        
    'search'    => true,
        
    'inputType'    => "text",
        
    'save_callback' => array
        (
            array(
    'tl_member_ml''validateKundennummer')
        ),
        
    'eval'      => array('maxlength'=>64'rgxp'=>'natural''feEditable'=>true'feViewable'=>true'feGroup'=>'contact''tl_class'=>'w50''mandatory'=>false'chosen'=>true),
        
    'sql'       => "int(10) unsigned NOT NULL default 0"
    ); 
    PHP-Code:
    public function validateKundennummer($kundennummer$user)
    {
        
    // nicht getestet
        
    if (defined('TL_MODE') && TL_MODE == 'FE') {
            return 
    "diesunddas";
        }
        
        if (
    $kundennummer == "")
            return 
    0;

        if (
    is_numeric($kundennummer)) {
            return 
    $kundennummer;
        }

        return 
    0;


    Wurde bei mir erst notwendig, seitdem ich MySql im Strict-Mode betreibe...

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    @heyho das ist ein Bug in Contao: https://github.com/contao/contao/pull/3480
    » sponsor me via GitHub or PayPal or Revolut

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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