Ergebnis 1 bis 21 von 21

Thema: Catalog-Einträge via EFG erstellen und im Backend und ggfs. Frontend verwalten

  1. #1
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Frage Catalog-Einträge via EFG erstellen und im Backend und ggfs. Frontend verwalten

    Hallo zusammen,
    ich hab mir über Google und hier im Forum schon einen Wolf gesucht, aber leider noch keinen passenden Lösungsansatz gefunden. :-(

    Meine Aufgabenstellung: Ich möchte Neueinträge im Katalog über das Frontend (EFG-Formular) erstellen, die dann im Backend von einer "Redaktion" geprüft, freigeschaltet, verwaltet werden und ggfs. von den Frontend-Mitgliedern, die die Einträge gemacht haben, via CatalogEdit überarbeitet werden können.

    Ich habe hierzu einen Katalog angelegt, in dem es unter anderem ein "Tags"-Feld gibt, das die Auswahl mehrerer Optionen erlaubt. Wähle ich die zugehörigen Checkboxen (z.B. 1, 3 und 6) im Backend aus, werden die Daten im Format
    Code:
    1,3,6
    abgespeichert. Soweit alles bestens. Einträge aus dem Frontend via EFG werden auch sauber gemacht (pid, tstamp usw. werden suaber via hidden-Fields gesetzt).

    ABER: Im EFG verwende ich für o.g. "Catalog-Tags" das "Checkbox-Menü". Das Problem: Die Optionen werden von EFG als "serialized Array" abgespeichert.
    Code:
    a:3:{i:0;s:1:"1";i:1;s:1:"3";i:2;s:1:"6";}
    Das bedeutet: Aus Backend-Sicht sind in der Catalog-Datenbank im entsprechenden Feld angeblich KEINE Optionen ausgewählt. Die entsprechenden Checkboxen sind im Backend leer. Noch viel schlimmer: Nach dem Abspeichern ist auch das "serialized Array" (BLOB) verschwunden.

    Nun meine Frage: Wie bringe ich EFG dazu, die Checkbox-Optionen ganz simpel so in der DB abzuspeichern, wie es der Catalog tut?
    Ein ähnliches Problem ist übrigens das vielfach hier beschriebene, nämlich dass die Datumsformate von EFG und Katalog voneinander abweichen. EFG: formatiertes Datum, Catalog: UNIX-Timestamp
    Auch hiefür habe ich noch keine elegante Lösung gefunden.


    BITTEBITTEBITTE helft! Ich kann doch nicht der einzige sein, der EFG und Catalog zusammenspielen lassen will, oder!?

    Liebe Grüße und danke für jeden guten Tipp
    wsa
    Geändert von wsa (07.12.2012 um 16:47 Uhr)

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo wsa,
    meine Lösung ist jetzt eventuell etwas weit hergeholt... aber ich glaub da würde ich das FrontendEditing vom Catalog benutzen ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Standard

    Halle MacKP,atalog

    stehe ich total auf dem Schlauch und merks nur nicht?
    Taugt denn der CatalogEdit auch zum ERFASSEN von CatalogItems? Falls ja, muss ich mich da wohl gewaltig verlesen haben. *Augenroll*
    Ich ging bisher davon aus, dass man damit nur bestehende Items EDITIEREN kann. Bin ich da auf dem Holzweg?

    LG wsa

  4. #4
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Nein, damit kann man auch neue Einträge erstellen...

    Siehe im Contao Wiki:
    Catalog mit Frontend-Editing und Workflow
    Geändert von Flex (07.12.2012 um 23:04 Uhr)

  5. #5
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Standard catalogitemuseridfield für catalog 2.0.0 beta2?

    Hallo zusammen,
    komme langsam voran, stolpere aber gerade über die Nicht-Verfügbarkeit von "catalogitemuseridfield" Habe bei Contao 2.11.6 die catalog-version 2.0.0 beta2 und bekomme 'catalogitemuseridfield' im Erweiterungskatalog nicht angezeigt.
    Und im Catalog steht der entsprechende Feldtyp (Frontend-Benutzer) nicht zur Auswahl.
    Mache ich was falsch?
    LG wsa

  6. #6
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo wsa,
    eventuell musst du dafür in den Einstellungen von Contao ankreuzen, das dir auch inkompatible Erweiterungen angezeigt werden.
    Oder du nimmst das direkt aus dem SVN (wie den kompletten Catalog auch...).
    Mehr Infos zu SVN = Im Wiki oder hier im Forum. Also bitte die Suche benutzen.


    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  7. #7
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Computer Merci !

    ... da war er wieder der Schlauch ... und wieder nicht bemerkt, dass ich draufsteh. :-(
    Merci !

  8. #8
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Frage storeFormData hook - Dokumentation? Beispiele?

    Hallo zusammen,

    habe mir die CatalogEdit-Funktion inzwischen genauer angesehen und bin für meine Zwecke nicht glücklich darüber. Dieses Modul erreicht nicht annähernd den Funktionsumfang von EFG, weshalb ich nun meinen ursprünglichen Ansatz (Erfassen von Catalogdaten via EFG) weiterverfolge. Im Moment beabsichtige ich, die im Formular via Checkbox eingegebenen Daten, die serialisiert in einem Array abgelegt werden,
    Code:
    a:3:{i:0;s:1:"1";i:1;s:1:"3";i:2;s:1:"6";}
    vor dem Speichern in die Datenbanktabelle zu unserialisieren.
    Code:
    1,3,6
    Hierzu bin ich hier im Forum auf den storeFormData Hook gestoßen. Leider finde ich nirgendwo eine Dokumentation oder ein Beispiel für die genaue Verwendung dieses Hooks. Mein derzeitiger Versuch endet in einem
    Parse error: syntax error, unexpected T_PUBLIC in /www/htdocs/.../TYPOlight/system/modules/EfgCallbacks/EfgCallbacks.php on line 4
    Meine /system/modules/EfgCallbacks/EfgCallbacks.php
    PHP-Code:
    <?php
    // unserialze Arrays repertoire and medien (from EFG-Format to Catalog-Format)

            
    public function storeFormData_mdb($arrData,$arrForm)
            {

                            echo 
    '<p>Catalogdaten werden bearbeitet</p>';
                            echo 
    '<p>'.$arrForm['repertoire'].'<br /><br />';
                            
    $arrForm['repertoire'] = unserialze($arrForm['repertoire']);
                            echo 
    $arrForm['medien'].'/p>';
                            
    $arrForm['medien'] = unserialze($arrForm['medien']);

                    return 
    $arrForm;

            }

    ?>
    Meine /system/modules/EfgCallbacks/config/config.php
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    $GLOBALS['TL_HOOKS']['storeFormData']['callback_01'] = array('EfgCallbacks''storeFormData_mdb');

    ?>
    Kann mir jemand auf die Sprünge helfen? (Ich fürchte, ich stehe wieder mit der Nase direkt vor dem Fehler!?)

    Vielen Dank im Voraus, für jede brauchbare Unterstützung.
    GLG wsa
    Geändert von wsa (24.01.2013 um 15:23 Uhr)

  9. #9
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Der storeFormData Hook wird nicht vom EFG getriggert, sondern von Contao selbst, für Formulare, die in die Datenbank schreiben.

    Zeile 439 in der Form.php

    Übergeben wird ein Array aus Feld => Wert und das Formular-objekt selbst. Rückgabe ist das Array.

    Deine Funktion würde damit so aussehen (wenn die Felder gleiche Namen haben):
    PHP-Code:
    public function storeFormData_mdb($arrSet,$objForm)
    {
        
    $arrSet['repertoire'] = deserialize($arrSet['repertoire']); 
        return 
    $arrSet;


    Die Globale vom Hook wäre dann auch als push besser, damit man nicht eventuelle gleiche Keys überschreibt, ich weiss in der Doku vom EFG selbst steht es mit festen Keys :
    $GLOBALS['TL_HOOKS']['storeFormData'][] = array('EfgCallbacks', 'storeFormData_mdb');
    Geändert von Tim G (07.01.2013 um 15:26 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  10. #10
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Standard

    Servus Tim G,

    vielen Dank für deinen Input. Habe deinen Code übernommen und erhalte nach wie vor denselben
    Parse error: syntax error, unexpected T_PUBLIC in /www/htdocs/.../TYPOlight/system/modules/EfgCallbacks/EfgCallbacks.php on line 4
    Allerdings muss ich gestehen, dass ich nicht sicher bin, ob ich dich richtig verstanden habe.
    Frage 1: Muss ich den Hook-Code direkt in die Form.php einbauen? Und - falls ja - wie updatesicher ist das Ganze dann?
    Frage 2: wohin muss dann der Code?
    PHP-Code:
    $GLOBALS['TL_HOOKS']['storeFormData'][] = array('EfgCallbacks''storeFormData_mdb'); 
    In die localconfig.php? Oder in die dcaconfig.php?
    Frage 3: Kannst du bitte enäher erläutern, was
    Die Globale vom Hook wäre dann auch als push besser, damit man nicht eventuelle gleiche Keys überschreibt, ich weiss in der Doku vom EFG selbst steht es mit festen Keys
    bedeutet? Da verstehe ich nämlich nur Bahnhof.
    Vielen Dank im Voraus!
    GLG wsa
    Geändert von wsa (24.01.2013 um 15:22 Uhr)

  11. #11
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard Catalog-Einträge via EFG erstellen und im Backend und ggfs. Frontend verwalten

    Wie man mit Hooks arbeitet steht im Handbuch:
    https://contao.org/de/manual/3.0/cus...l#contao-hooks
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  12. #12
    Contao-Fan Avatar von tom
    Registriert seit
    16.06.2009.
    Ort
    Ludwigsburg
    Beiträge
    385

    Standard

    Zitat Zitat von wsa Beitrag anzeigen
    Servus Tim G,

    vielen Dank für deinen Input. Habe deinen Code übernommen und erhalte nach wie vor denselben

    Allerdings muss ich gestehen, dass ich nicht sicher bin, ob ich dich richtig verstanden habe.
    Frage 1: Muss ich den Hook-Code direkt in die Form.php einbauen? Und - falls ja - wie updatesicher ist das Ganze dann?
    Frage 2: wohin muss dann der Code?
    Code:
    $GLOBALS['TL_HOOKS']['storeFormData'][] = array('EfgCallbacks', 'storeFormData_mdb');
    In die localconfig.php? Oder in die dcaconfig.php?
    Frage 3: Kannst du bitte enäher erläutern, was

    bedeutet? Da verstehe ich nämlich nur Bahnhof.
    Vielen Dank im Voraus!
    GLG wsa
    Hallo wsa,

    ziemlich verwirrende Mischung hier ;-/

    Um die Daten in eine Catalog-Tabelle zu speichern, hilft Dir EFG (bzw. dessen Hook) nicht wirklich weiter.
    Einfacher ist dies mit der Standard-Option "Eingaben speichern", die Du ganz offensichtlich auch nutzt.
    Da Dein ganzes Procedere eigentlich mit EFG nichts zu tun hat, würde ich auch die Dateien/Klassen/Methoden nicht mit "EFG" benennen.


    Zu Frage 1)
    Deinen "Hook-Code" musst Du in einer Klasse speichern. Der Parse-Error kommt daher, dass in Deiner Datei "/system/modules/EfgCallbacks/EfgCallbacks.php" keine Klasse definiert wird.
    Weitere Fehler in Deiner Funktion:
    Du darfst nicht $arrForm verändern und zurückgeben (das wäre das Formular-Objekt), sondern das geänderte Array $arrData

    Statt:
    PHP-Code:
    <?php
    // unserialze Arrays repertoire and medien (from EFG-Format to Catalog-Format)

            
    public function storeFormData_mdb($arrData,$arrForm)
            {

                            echo 
    '<p>Catalogdaten werden bearbeitet</p>';
                            echo 
    '<p>'.$arrForm['repertoire'].'<br /><br />';
                            
    $arrForm['repertoire'] = unserialze($arrForm['repertoire']);
                            echo 
    $arrForm['medien'].'/p>';
                            
    $arrForm['medien'] = unserialze($arrForm['medien']);

                    return 
    $arrForm;

            }

    ?>
    wäre korrekt (Umbenennung noch nicht berücksichtigt):
    PHP-Code:
    <?php
    class EfgCallbacks extends Backend
    {

    // unserialze Arrays repertoire and medien (from Form-/POST-Format to Catalog-Format)

            
    public function storeFormData_mdb($arrData$objForm)
            {
                            
    $arrData['repertoire'] = implode(','deserialze($arrData['repertoire'], true)); // ohne implode hättest Du ein Array statt einer kommaseparierten Liste
                            
    $arrData['medien'] = deserialze($arrData['medien']); // auch hier ggf. per implode in kommasep. Liste wandeln

                    
    return $arrData;

            }

    }
    ?>
    Zu Frage 2)
    Niemals in die Datei localconfig.
    Entweder in die dcaconfig.php oder in eine config.php im Modulverzeichnis, in Deinem Fall also (vor vernünftiger Umbenennung):
    system/modules/config/config.php

    Zu Frage 3)
    Damit meint Tim:
    Gesetzt den Fall, eine andere Erweiterung hätte bereits unter demselben Schlüssel einen callback registriert, z.B.
    PHP-Code:
    $GLOBALS['TL_HOOKS']['storeFormData']['callback_01'] = array('TimsCallbacksKlasse''timsTutIrgendwasMethode'); 
    würde Deine Zeile
    PHP-Code:
    $GLOBALS['TL_HOOKS']['storeFormData']['callback_01'] = array('EfgCallbacks''storeFormData_mdb'); 
    Tim's Eintrag überschreiben oder aber Dein Eintrag würde von Tim's überschrieben (falls Tim's Modulverzeichnis nach Deinem folgt)

    Daher schlägt Tim vor, per
    PHP-Code:
    $GLOBALS['TL_HOOKS']['storeFormData'][] = array('EfgCallbacks''storeFormData_mdb'); 
    einfach zu "pushen". Soll heißen Deinen Eintrag an das bestehende Array als weiteren Eintrag anzuhängen.

    @Tim: im EFG-Beispiel befindet sich der Eintrag allerdings in der dcaconfig.php, welche u.U. mehrfach geladen wird ...

    Schöne Grüße
    Tom

  13. #13
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Daumen hoch

    Zitat Zitat von Tim G Beitrag anzeigen
    Wie man mit Hooks arbeitet steht im Handbuch:
    https://contao.org/de/manual/3.0/cus...l#contao-hooks
    Hallo Tim G,
    das Handbuch hatte ich bereits zu Hilfe gezogen. Allerdings ist es so, dass die Beschreibung dort bereits ein breites Allgemeinwissen über die "Tiefen" von Contao voraussetzt. Mir geht es da aber wie sicherlich vielen Contao-Nutzern: Ich bin weder "gelernter" Programmierer noch professioneller Webdesigner und nutze Contao für ausschließlich private Zwecke nach dem Prinzip "learning by doing" und "copy, customize and paste". D.h. ich habe bereits viele Funktionen erfolgreich implementiert, ohne im Detail zu wissen, was ich da genau gemacht habe bzw. warum es nach vielen Versuchen endlich funktioniert. Gleichzeitig fehlt mir in meiner Freizeit die Zeit, mich tiefer einzulesen und somit die "Theorie" besser zu verstehen. Unterm Strich helfen mir - wie auch in diesem Fall - oft nur Antworten wie die von tom wirklich weiter. Trotzdem vielen Dank für deine Antwort. :-)

    Besten Dank an dieser Stelle an tom für die ausführliche Darstellung und die aufwändige Entwirrung meiner "ziemlich verwirrenden Mischung" ! :-) *Daumen hoch*
    GLG wsa

  14. #14
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Frage

    Hallo zusammen,
    habe jetzt folgende Codes aktiv:
    In /TYPOlight/system/modules/FormData_deserializer/FormData_deserializer.php :
    PHP-Code:
    <?php
    class FormData_deserializer extends Backend
    {

    // deserialze Arrays from Form-/POST-Format to Catalog-Format (i.e. 'repertoire' and 'medien' in cat_Musikanten)
    // for example
    // input:  a:3:{i:0;s:1:"1";i:1;s:1:"3";i:2;s:1:"6";}
    // output: 1,3,6

            
    public function storeFormData_mdb($arrData$objForm)
            {
                            
    $arrData['repertoire'] = implode(','deserialize($arrData['repertoire'], true));
                            
    $arrData['medien'] = implode(','deserialize($arrData['medien'], true));

                    return 
    $arrData;

            }

    }
    ?>
    Und in /TYPOlight/system/modules/FormData_deserializer/config/config.php :
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    $GLOBALS['TL_HOOKS']['storeFormData'][] = array('FormData_deserializer''storeFormData_mdb');

    ?>
    Das Ergebnis: Der Eintrag in die Datenbank erfolgt wie beabsichtigt. *Daumen hoch*
    Jedoch: Nach dem Abschicken des Formulars erhalte ich eine leere weiße Seite, anstatt der eingestellten Weiterleitungsseite.
    Versteht das jemand?

    LG wsa
    Geändert von wsa (24.01.2013 um 15:21 Uhr)

  15. #15
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Multimedia gelöst

    Diesmal konnte ich mir mit Hilfe der Suchfunktion selbst weiterhelfen:
    Die Lösung bzw. Erklärung für die "weiße Seite" anstatt der Weiterleitungsseite:
    in meiner FormData_deserializer.php hatte sich nach dem schließenden PHP-Tag noch ein Leerzeichen versteckt.
    Kaum habe ich dieses entfernt, läuft alles bestens! *Hurra*
    (s. auch https://community.contao.org/de/show...ll=1#post46517)

  16. #16
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    @tom

    @Tim: im EFG-Beispiel befindet sich der Eintrag allerdings in der dcaconfig.php, welche u.U. mehrfach geladen wird ...
    Dann natürlich mit festem Schlüssel. Hast recht. Ich geh meistens davon aus immer gleich eine eigene config.php zu erstellen. Sorry.
    Danke fürs Richtigstellen

    @wsa
    gut wenn's jetzt klappt.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  17. #17
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Frage

    Hi zusammen!
    Hab noch ein kleines Problemchen hinzubekommen. Mein Code funktioniert hervorragend für das betroffene Formular. Erscheitert jedoch in allen Formularen, denen die Felder "repertoire" und "medien" fehlen. Es braucht also noch eine Abfrage nach der Formular-ID oder einer anderen Formular-Kennung. Kann mir da jemand bei der Codierung behilflich sein? Nachfolgend mein momentaner "Versuch", der so aber voll in die Hosen geht. *planlos*
    PHP-Code:
    <?php
    class FormData_deserializer extends Backend
    {

    // deserialze Arrays from Form-/POST-Format to Catalog-Format (i.e. 'repertoire' and 'medien' in cat_Musikanten)
    // for example
    // input:  a:3:{i:0;s:1:"1";i:1;s:1:"3";i:2;s:1:"6";}
    // output: 1,3,6

            
    public function storeFormData_mdb($arrData$objForm)
            {
            
    // Einschraenkung auf das Formular
            
    if ($objData['FORM_SUBMIT'] == 'auto_form_2')

                {
                            
    $arrData['repertoire'] = implode(','deserialize($arrData['repertoire'], true));
                            
    $arrData['medien'] = implode(','deserialize($arrData['medien'], true));

                    return 
    $arrData;
                }
            }

    }
    ?>
    Ich hab das Gefühl, ich steh soooo dicht vor dem Ziel!
    Vielen Dank im Voraus und GLG wsa
    Geändert von wsa (24.01.2013 um 15:21 Uhr)

  18. #18
    Contao-Fan Avatar von tom
    Registriert seit
    16.06.2009.
    Ort
    Ludwigsburg
    Beiträge
    385

    Standard

    Hallo wsa,

    da hat sich wohl ein Tipp / CopyPaste-Fehler eingeschlichen,
    Deine Prüfung auf Formular
    PHP-Code:
    if ($objData['FORM_SUBMIT'] == ... 
    müsste heißen
    PHP-Code:
    if ($arrData['FORM_SUBMIT'] == ... 
    Schöne Grüße
    Tom

  19. #19
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Frage

    Servus tom,

    danke für die Korrektur. :-)
    Danach lief mein Hook zwar auf keinen Fehler mehr (ohne Formularprüfung hatte er sich in anderen Formularen zu Recht "beschwert", dass es die Felder 'repertoire' und 'medien' nicht gibt; mit der falschen Formularprüfung blieb er einfach hängen.), allerdings war jetzt mein Datenbankeintrag jeweils leer (alle Felder sind leer, NULL oder '0').
    Seitdem ich die return-Anweisung außerhalb der if-clause gesetzt habe, wird der Datenbank-Eintrag wieder geschrieben, aber:

    Die Abfrage
    PHP-Code:
    if ($arrData['FORM_SUBMIT'] == 'auto_mdb_neu'
    ergibt kein 'wahr', obwohl das Formular die ID '3' hat und im Quelltext
    HTML-Code:
    <input type="hidden" name="FORM_SUBMIT" value="auto_form_3">
    steht, weshalb auch keine Deserialisation der Daten mehr stattfindet. *Haarerauf*

    Mein Code im Moment:
    PHP-Code:
    <?php
    class FormData_deserializer extends Backend
    {

    // deserialze Arrays from Form-/POST-Format to Catalog-Format (i.e. 'repertoire' and 'medien' in cat_Musikanten)
    // for example
    // input:  a:3:{i:0;s:1:"1";i:1;s:1:"3";i:2;s:1:"6";}
    // output: 1,3,6

            
    public function storeFormData_mdb($arrData$objForm)
            {
            
    // Einschraenkung auf das Formular 'Musikgruppen' (Neuer Eintrag in 'cat_Musikanten')
            
    if ($arrData['FORM_SUBMIT'] == 'auto_form_3')
                {
                      
    $arrData['repertoire'] = implode(','deserialize($arrData['repertoire'], true));
                      
    $arrData['medien'] = implode(','deserialize($arrData['medien'], true));

                }
                    return 
    $arrData;
            }

    }
    ?>
    Hiiilfeee! Ich bin kurz vor dem Verzweifeln!
    Geändert von wsa (25.01.2013 um 10:56 Uhr)

  20. #20
    Contao-Fan Avatar von tom
    Registriert seit
    16.06.2009.
    Ort
    Ludwigsburg
    Beiträge
    385

    Standard

    Hallo wsa,

    da hab' ich nicht aufgepasst (den Hook 'storeFormData' noch nie benötigt). $arrData enthält ausschließlich die zu speichernden Daten, und somit gibt es keinen Eintrag $arrData['FORM_SUBMIT'] ...
    Also nochmal ändern, statt:
    PHP-Code:
    if ($arrData['FORM_SUBMIT'] == 'auto_form_3'
    korrekt:
    PHP-Code:
    if ($objForm->id == '3'
    Nu sollte's aber klappen

    Schöne Grüße
    Tom

  21. #21
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Daumen hoch Daaaankeee!

    Das war's! :-)

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
  •