Ergebnis 1 bis 10 von 10

Thema: Eigene Widget in Formular-Daten anzeigen

  1. #1
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard Eigene Widget in Formular-Daten anzeigen

    Hallo Thomas,

    muss ich etwas beachten, wenn ich ein eigenes Widget im Modul "Formular-Daten" anzeigen lassen möchte?

    Gruß, Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

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

    Standard

    Hallo Felix,

    EFG "verarbeitet" ohne Anpassungen nicht alle (neuen/zusätzlichen) Widgets.
    Für die Darstellung/Bearbeitung im Backend erzeugt EFG beim Speichern des Formulars das entspr. DCA-File. Bei "unbekannten" Widgets ist aber schwer zu entscheiden, wie diese im Backend gerendert werden sollen.

    Momentan sind die unterstützten Formularfeld-Typen als Array (arrFFstorable) in der system/modules/efg/FormData.php und und der system/modules/efg/ModuleFormdata.php hinterlegt.
    (Ich werde vermutlich das Prinzip künftig umstellen, ~ Blacklist statt Whitelist)
    Minimum wäre, Dein eigenes Widget dort zu ergänzen.
    Damit sollte EFG zumindest mal die Daten speichern etc.

    Das zugehörige dca-Array für das Backend wird dann wiederum per system/efg/templates/master/efg_dca_formdata.tpl erzeugt.
    Falls Dein widget auch als Backend-Widget registriert ist, sollte es dann auch bei der Bearbeitung der Formulardaten im Backend gerendert werden.

    Hoffe, das hilft als erster Ansatz.
    Das einfachste wird sein (falls Dir möglich) Du sendest mir mal Dein Widget zu, ich sorge für die korrekte Behandlung/Unterstützung im EFG.

    Schöne Grüße
    Thomas

  3. #3
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    Hallo Thomas,

    das Widget ist im Repository hinterlegt.
    https://contao.org/erweiterungsliste....10009.de.html

    Ich habe es im Moment nur als Frontend-Widget angelegt, da es im Backend eigenlich wie das normale select-Modul verarbeitet wird.

    Damit ist es möglich eine Option per übergebener Get-Variable beim Betreten der Seite auszuwählen.

    Ich schaue mal, wie Du im EFG vorgegangen bist.

    Evtl. hängt diese fehlende Verknüpfung auch mit meinem Problem im anderen Thread zusammen.

    Gruß, Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  4. #4
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    Ich habe das Widget nun mal von Hand in das Array aufgebommen - und siehe da, es geht :-)

    Cool wäre es natürlich, wenn man das über ein globales Array machen könnte. Aber das hast Du ja schon angedeutet.

    Gruß und schönes Wochenende,

    Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  5. #5
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    Da habe ich mich zu früh gefreut.

    Einmal hat es geklappt, jetzt wieder nicht. Dabei habe ich nur die Texte für die e-Mails angepasst.

    Irgendwas mache ich grundlegend falsch - aber was??

    Gruß, Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  6. #6
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    So, jetzt habe ich es wohl.

    Ich habe nun alle Dateien, die Du angegeben hattest angepasst. Wichtig war wohl die Angabe in der efg_dca_formdata.tpl.

    Außerdem musste ich nach jedem Ändern des Formularfeldes im Backend zuerst noch die Formulareinstellungen neu speichern. Vermutlich liegt das daran, dass erst damit die DCA-Datei neu geschrieben wird. Evtl. könnte man das noch anpassen, dass die callback-Funktion createFormdataDca auch nach dem Ändern eines Formularfeldes aufgerufen wird.

    Gruß, Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

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

    Standard

    Hallo Felix,
    Zitat Zitat von felixpfeiffer Beitrag anzeigen
    Außerdem musste ich nach jedem Ändern des Formularfeldes im Backend zuerst noch die Formulareinstellungen neu speichern. Vermutlich liegt das daran, dass erst damit die DCA-Datei neu geschrieben wird.
    korrekt, die DCA-Files werden beim Speichern des Formulars erzeugt/aktualisiert.
    Habe mittlerweile Dein 'fp_FormSelectMenu' "integriert", wird mit nächster Version dann ohne manuelle Eingriffe laufen.
    Zitat Zitat von felixpfeiffer Beitrag anzeigen
    Evtl. könnte man das noch anpassen, dass die callback-Funktion createFormdataDca auch nach dem Ändern eines Formularfeldes aufgerufen wird.
    halte ich nicht für sinnvoll, insbesondere nicht wegen des Drag'n'Drop im Formulargenerator seit TL 2.7.0

    Schöne Grüße
    Thomas

  8. #8
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    Hallo Tom,

    die Argumente sind gut. Man sollte einfach nur etwas genauer darauf hinweisen.

    Und danke für das integrieren des Widgets in die Erweiterung bzw. das Einbinden in die Liste.

    Vielleicht kannst Du es ja in einer der nächsten Versionen tatsächlich über ein globales Array lösen, das würde dann die Entwickler noch flexibler machen.

    Aber ansonsten wirklich eine tolle Erweiterung.

    Gruß, Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  9. #9
    Contao-Nutzer
    Registriert seit
    21.06.2011.
    Ort
    Leipzig
    Beiträge
    8

    Standard Einbinden des formdataselect in das "arrFFstorable"

    Wie gehe ich vor, wenn ich das formdataselect (Datum) mit dem efg Modul via E-Mail verschicken will. Kann hier einer Helfen.

    Was ich bereits getan habe:
    1. In die FormData.php das formdataselect in das arrFFstorable aufgenommen
    Zeile: 68

    2. Ab Zeile 686 den Code wie folgt geändert
    Code:
    /*foreach ($strVal as $k=>$value)
    {
    	$strVal[$k] = $this->String->decodeEntities($value);
    }*/
    				
    array_walk_recursive($strVal, create_function('$v,$k', '@String::decodeEntities($v);'));
    $strVal = serialize($strVal);
    Was mache ich falsch?

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

    Standard

    formdataselect (Datum)
    vermutlich ist formdateselection gemeint(?)

    1. In die FormData.php das formdataselect in das arrFFstorable aufgenommen
    Zeile: 68
    Anstatt die Formdata zu verändern (nicht updatesicher), können (siehe Zeile 77) weitere "zu speichernde Widgets" im globalen Array $GLOBALS['EFG']['storable_fields'] eingetragen werden, also entweder in der system/config/dcaconfig.php oder in einer system/modules/GEWUENSCHTERMODULNAME/config/config.php folgender Eintrag:
    PHP-Code:
    $GLOBALS['EFG']['storable_fields'][] = 'formdateselection'
    Damit sollte der Wert zumindest in Formulardaten gespeichert werden und in Mail-Texten per Insert-Tag zu Verfügung stehen. Bei Bearbeitung der Formulardaten im Backend wird das Feld dennoch nicht auftauchen, da hierfür ein entsprechendes "Backend-Widget" erforderlich wäre. Ein im Formulargenerator angelegtes Feld (Frontend-Widget) kann nicht zwangsläufig/automatisch im Backend verwendet werden. In manchen Fällen kann als entsprechendes Backend-Widget ein einfaches Text-Eingabefeld ausreichen.

    Das läßt sich erreichen durch einen weiteren Eintrag in der config:
    $GLOBALS['BE_FFL']['formdateselection'] = 'TextField';
    /*foreach ($strVal as $k=>$value)
    {
    $strVal[$k] = $this->String->decodeEntities($value);
    }*/

    array_walk_recursive($strVal, create_function('$v,$k', '@String::decodeEntities($v);'));
    $strVal = serialize($strVal);
    > http://de3.php.net/manual/en/functio...-recursive.php
    > http://de2.php.net/manual/en/functio...e-function.php

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 15.07.2010, 23:27
  2. Antworten: 6
    Letzter Beitrag: 11.07.2010, 11:01
  3. Antworten: 0
    Letzter Beitrag: 13.01.2010, 03:01

Lesezeichen

Lesezeichen

Berechtigungen

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