Hallo Thomas,
muss ich etwas beachten, wenn ich ein eigenes Widget im Modul "Formular-Daten" anzeigen lassen möchte?
Gruß, Felix
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
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
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
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
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
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
Hallo Felix,
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.
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
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
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
Was mache ich falsch?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);
vermutlich ist formdateselection gemeint(?)formdataselect (Datum)
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:1. In die FormData.php das formdataselect in das arrFFstorable aufgenommen
Zeile: 68
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.PHP-Code:
$GLOBALS['EFG']['storable_fields'][] = 'formdateselection';
Das läßt sich erreichen durch einen weiteren Eintrag in der config:
$GLOBALS['BE_FFL']['formdateselection'] = 'TextField';> http://de3.php.net/manual/en/functio...-recursive.php/*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://de2.php.net/manual/en/functio...e-function.php
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen