Ergebnis 1 bis 3 von 3

Thema: onSubmit callback Daten manipulieren

  1. #1
    Contao-Nutzer
    Registriert seit
    26.10.2016.
    Beiträge
    2

    Standard onSubmit callback Daten manipulieren

    Laut Doku heisst es wie folgt:

    onsubmit_callback
    Is executed when a back end form is submitted. Allows you to e.g. modify the form data before it is written to the database (used to calculate intervals in the calendar extension).


    Ich muss zugeben ich hab vorher noch nicht viel mit Contao callbacks gearbeitet und von daher hab ich noch nicht so den durchblick. Was ich machen möchte ist, stupided Beispiel, wenn ein User ein Formular (Element im Backend) absendet, möchte ich das der Wert manipuliert wird.

    Simples workflow Beispiel:
    User erstellt Element Text mit dem Wert "Noob" als Headline
    in der Callback Funktion möchte ich den Wert "Noob" manipulieren und durch einen anderen ersetzen.

    Meine funktion ruf ich so auf:
    PHP-Code:
    $GLOBALS['TL_DCA']...['onsubmit_callback'][] = array('handler','parseMe');

    class 
    handler extends \Backend {
         public function 
    parseMe(DataContainer $dc) {
              
    $record $dc->activeRecord;
              
    /* ... */
              
    return;
         }

    wie zum Teufel manipulier ich nun die Daten und geb Sie zurück so dass beim "Speichern und schließen" der manipulierte Wert dort steht?

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Für ein Beispiel schau Dir dca/tl_member.php aus dem core an. Dort storeDateAdded(). Du willst zwar kein neues Feld berechnen, aber das Prinzip sollte das gleiche sein.

    Während ich das schreibe: Ich denke, Du solltest eher einen save_callback nehmen. Beispiel (auch aus tl_member): setNewPassword().
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    26.10.2016.
    Beiträge
    2

    Standard

    Du bist der Knaller! Also ich hätte ja echt an alles gedacht aber nicht an ein Feld Callback. Logischer wäre es zwar anders aber ich will keine religiöse Diskussion starten. Vielen Dank für deinen Tipp!


    Für alle die ähnliches suchen:
    Daten kann man am besten bei einem Field callback mit dem onsave_callback.

    Ein Beispiel:

    PHP-Code:
    $GLOBALS['TL_DCA']['modul']['fields']['feldname']['save_callback'][] = array('yourAwesomClass','awesomeClasstFunction');
    class 
    yourAwesomeClass extends \Backend
        
    {
              public function 
    awesomeClassFunction($fieldValue) {
                     
    /* deine funkltionslogik */
                      
    $newManipulatedValue '';
                      return 
    $newManipulatedValue;
              }
         } 
    Sollte so richtig sein

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
  •