Formulargenerator

Alles rund um Module und Plugins in CONTENIDO 4.9.
McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Fr 29. Apr 2016, 13:59

Hallo zusammen,

kann das Problem nachstellen. Die Modul-Übersetzung funktioniert einwandfrei, in einer anderen Sprache kommt der "translation"-Platzhalter falls keine Sprachinfos hinterlegt sind.
Contenido bietet seit jeher die Möglichkeiten Konfigurationen in Modulen Mandanten- und Sprach-spezifisch abzulegen. ... Da es mehrere Möglichkeiten in Modulen dafür gibt (Input
Nur input, textareas sowie check-/radioboxen (also auch inputs) werden hier verwendet. Insofern kann ich auch nicht sagen woran es liegt, dass die Einstellungen über den Reiter Konfiguration in die andere Sprache übertragen werden...
:|
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Freddy
Beiträge: 239
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Re: Formulargenerator

Beitrag von Freddy » Di 3. Mai 2016, 17:41

McHubi hat geschrieben:Ja, Du bräuchtest die Eingabe im Formularfeld nur an das Array $recipients_in_array im Abschnitt "sending mail" anhängen. Das würde ich aber über die Konfiguration als optional "zuschaltbar" einbinden, damit das Modul mehrfach verwendbar bleibt. Wichtig: Der Variablenname zum Anhängen an das Array der Empfänger im Output muss mit dem in der Konfiguration übereinstimmen.
Hallo McHubi,
kannst Du mir vielleicht nochmal genauer erklären was ich genau machen muss damit eine Bestätigungsemail mit rausgeht?
Vielen Dank für die Mühe.

McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Fr 6. Mai 2016, 10:38

Hallo Freddy,

Du legst über den Artikelreiter "Konfiguration" im entsprechenden Feld ja die Formularfelder für das Formular fest. Bei einer E-Mail ist es zum Beispiel:

Code: Alles auswählen

###type_email***E-Mail***true***email***text***none***none***none***none***Bitte tragen Sie eine korrekte E-Mail Adresse ein.
Wichtig ist der vierte Teil: Der Name des Formularfeldes, der gleichzeitig als Variable verwendet wird. Hier also email. Du kannst auch email_cc_visitor verwenden oder was auch immer, wichtig ist nur, dass der Name für jedes Formularfeld eindeutig ist und nicht mehrfach vorkommt.

Setzen wir das Ganze mal um und Du verwendest jetzt also

Code: Alles auswählen

###type_email***E-Mail***true***email_cc_visitor***text***none***none***none***none***Bitte tragen Sie eine korrekte E-Mail Adresse ein.
Mit dem Namen des Formularfeldes hast Du also den Variablennamen und damit auch die E-Mail-Adresse, die bei den Empfängern zugeordnet werden muss. Das erledigst Du jetzt in der Modulausgabe in diesem Abschnitt:

Code: Alles auswählen

//building array with recipients
$recipients = "CMS_VALUE[100]";
$array_recipients=array_filter(explode("//",$recipients));
Zunächst wird in der Variablen $recipients das hinterlegt, was Du im Artikelreiter "Konfiguration" festgelegt hast. Also zum Beispiel "peter@test.de//winfried@irgendwo.de". Dann wird dieser String anhand des Trenners "//" in ein Array übertragen damit die einzelnen Mailadressen später beim Versand der Mail nacheinander abgearbeitet werden können.

Also musst Du jetzt die vom Seitenbesucher erfasste Mailadresse dort anhängen. Das geht in diesem Beispiel einfach, indem Du den String von $recipients erweiterst:

Code: Alles auswählen

//building array with recipients
$recipients = "CMS_VALUE[100]";
$recipients.='//'.$email_cc_visitor;
$array_recipients=array_filter(explode("//",$recipients));
Das war es schon.

Allerdings gibt es noch vier Dinge zu berücksichtigen:

1) Was ist, wenn die vom Seitenbesucher eingetragene Mailadresse falsch ist?
Alle eingegebenen Mailadressen in Formularfelder von Typ type_email werden geprüft, ob sie dem Standardaufbau einer Mailadresse entsprechen. Wenn nicht, wird vor dem Versand der Formulars eine Fehlermeldung ausgeworfen die Angaben zu korrigieren.

2) Was ist, wenn sich der Name des Formularfeldes und damit die Variable mal ändert?
Hier könntest Du Dich mit diesem mehrdimensionalen Array herumschlagen:

Code: Alles auswählen

$array_field_names[]=array($array_field_parts_elements[3],$array_field_parts_elements[0],$array_field_parts_elements[2],$array_field_parts_elements[9],$array_field_parts_elements[1],$array_field_parts_elements[8]);
Lassen wir das. Die einfachere Variante ist, den speziellen Namen und damit die Variable email_cc_visitor einfach generell festzulegen und damit auch gleich die beiden nächsten Punkte rel. einfach lösen zu können. Wenn Du also eine Kopie der Formulardaten an den Seitenbesucher senden möchtest, verwendest Du im Artikelreiter "Konfiguration" einfach

Code: Alles auswählen

###type_email***E-Mail***true***email_cc_visitor***text***none***none***none***none***Bitte tragen Sie eine korrekte E-Mail Adresse ein.
3) Was ist, wenn $email_cc_visitor leer ist?
Sofern Du die Mailadresse nicht als Pflichtfeld deklariert hast, erfolgt die unter 1) genannte Überprüfung nicht. Da kein Fehler vorliegt, würde $recipients um "//LEER" erweitert - was natürlich nicht gewünscht ist. Um das zu verhindern, baust Du in der entsprechenden Code-Zeile der Modulausgabe eine Prüfung ein:

Code: Alles auswählen

//building array with recipients
$recipients = "CMS_VALUE[100]";
if($email_cc_visitor!="") $recipients.='//'.$email_cc_visitor;
$array_recipients=array_filter(explode("//",$recipients));
4) Was ist, wenn nicht in jedem Formular die CC-Funktion aktiv sein soll?
Dann verwendest Du einfach den Standard, bzw. der Name darf dann nicht email_cc_visitor lauten:

Code: Alles auswählen

###type_email***E-Mail***true***email***text***none***none***none***none***Bitte tragen Sie eine korrekte E-Mail Adresse ein.
Dadurch ist die Variable $email_cc_visitor leer und die unter 3) genannte Prüfung ergibt eine leere Variable. Der Empfängerkreis wird nicht erweitert und die Mail geht nur an die Adressen, die Du im Artikelreiter "Konfiguration" eingetragen hast.

Wichtig: Der Code ist ungetestet. Probier es einfach mal aus.

VG,


Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Fr 6. Mai 2016, 14:33

Zum Thema Übernahme der Konfiguration in andere Sprachen
(http://forum.contenido.org/viewtopic.ph ... 15#p169464)
Ich habe mir mal die Datenbanktabelle con_container_conf angeschaut, nachdem ich ein Formular zuerst im deutschen und dann synchronisierten englischen Artikel angelegt habe. Dort wird folgendes hinterlegt

idcontainerc | idtplcfg | number | container
4376 | 272 | 40300 | 100=ich%40da.de&200=...
4379 | 198 | 40300 | 100=me%40there.com&200=...

Die unterschiedlichen Daten sind also in der DB vorhanden, werden aber in der jeweiligen Sprache nicht berücksichtigt. Im deutschen Artikel wird nach dem Speichern des englischen nicht mehr ich@da.de als Mailadresse in der Konfiguration angezeigt sondern me@there.com - obwohl die korrekten Daten in der idcontainerc 4376 enthalten sind.

Wenn ich jetzt im deutschen Webartikel wieder ich@da.de eintrage und speichere, wird dies auch im englischen Artikel übernommen. Jetzt folgt der Blick in die con_container_conf:

idcontainerc | idtplcfg | number | container
4376 | 272 | 40300 | 100=ich%40da.de&200=...
4382 | 198 | 40300 | 100=ich%40da.de&200=...

Was mich wundert: die idcontainerc 4379 des englischen Artikels ist verschwunden... :shock:

Korrigiere ich im englischen Webartikel wieder auf die me@there.com bleibt der Datensatz des zuerst angelegten deutsche Artikels mit idcontainerc 4376 unangetastet:

idcontainerc | idtplcfg | number | container
4376 | 272 | 40300 | 100=ich%40da.de&200=...
4385 | 198 | 40300 | 100=me%40there.com&200=...

In beiden Artikeln wird wieder me@there.com angezeigt.
Mir scheint, als würde immer die höchste idcontainerc der entsprechenden number das "Sagen" haben, nur nach der number gesucht und die idtplcfg völlig wurst zu sein. Meinem Verständnis nach steht die number für das Modul und die idtplcfg für die Sprache denn die 198 ist sowohl in der gelöschten idcontainerc 4379 enthalten als auch in der danach angelegten 4385. Sehe ich das falsch?

Kann mir mal einer das System dahinter erklären? :roll:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Do 16. Jun 2016, 10:20

Zum Thema Übernahme der Konfiguration in andere Sprachen
Noch nichts neues, aber dieser Workaround von bodil hier könnte bei Problemen weiterhelfen: http://forum.contenido.org/viewtopic.ph ... 36#p165925

@4fb: Da dieses "Konfigurationsproblem" anscheinend häufiger auftaucht und - so sehe ich das jedenfalls - modulunabhängig ist, wäre es gut, wenn ihr da mal einen Blick drauf werfen würdet. Danke! :D
Wie schaut es eigentlich aus mit dem bereits laufenden Ticket in diesem ähnlichen Problembereich: http://forum.contenido.org/viewtopic.ph ... 15#p164844
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Oldperl
Beiträge: 3989
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Formulargenerator

Beitrag von Oldperl » Do 16. Jun 2016, 13:22

Servus,

Lösung für diesen Bug :arrow: http://forum.contenido.org/viewtopic.ph ... 36#p169736

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Do 16. Jun 2016, 14:45

:D Danke Ortwin!
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Mo 25. Jul 2016, 15:43

Ich habe eine kleine Ergänzung umgesetzt:

Wenn im Betreff Formularfeldinhalte übermittelt werden sollten, mussten sie in der Modulausgabe bislang hardcodiert eingetragen werden. Hardcodiert ist natürlich unschön, da verschiedene Formulare nicht die gleichen Formularfelder beinhalten müssen und nicht jeder Betreff die gleichen Formularfeldinhalte. Die können jetzt flexibel im Betreff eingebunden werden, indem die gewünschten Felder bzw. deren Variablennamen in der Konfiguration festgelegt werden. Die Quelltexte des Eröffnungsposts sind bereits entsprechend angepasst.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

farina
Beiträge: 211
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: Formulargenerator

Beitrag von farina » Mo 19. Sep 2016, 17:53

Hallo zusammen,

das Formular klappt prima. Ich habe allerdings ein Formatierungsproblem.
Ich möchte 2, bzw. 3 Selectfelder nebeneinander setzen um ein Auswahldatum zu übergeben.
1. select =Tag
2. select = Monat
3. select = Jahr
Nun wird das Formular in eine Tabelle gesetzt und ich bekomme bei jedem Feld eine neue Reihe. Dadurch kann ich die Felder nicht nebeneinander setzen.
Gibt es Ausgabe des Formulars auch in div-Containern? Das würde alles vereinfachen. Oder hat jemand eine andere Idee?

Gruß farina

McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Mo 19. Sep 2016, 19:32

Hallo Farina,

das ist so nicht möglich und hinsichtlich "Generatorfähigkeiten" nicht ohne. Du kannst aber dafür den Feldtyp "Datum" verwenden. :D

VG,

Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

farina
Beiträge: 211
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: Formulargenerator

Beitrag von farina » Mo 19. Sep 2016, 21:33

Ja. Aber das bietet mir nicht das, was ich möchte. Es geht um eine Feriengshausreservierung. Da möchte ich die Möglichkeit raus nehmen irgend ein Datum einzugeben.
Gruß farina

McHubi
Beiträge: 998
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Formulargenerator

Beitrag von McHubi » Mo 19. Sep 2016, 22:11

Hallo Farina,

da wirst Du aber auch mit drei nebeneinander liegenden selects nicht viel weiter kommen wenn Du damit z.B. eingeschränkte Zeiträume abbilden willst. Ggf. Ist es sinnvoll, wenn Du Dir ein eigenes Formular zurecht programmierst. Das kannst Du dann in jeglicher Hinsicht gestalten wie Du willst. Generatoren bieten zwar den Vorteil schnell und einfach zu sein, aber bei Sonderwünschen wird's dann knifflig. Könntest auch mal einen Blick auf Ortwins Buchungs-Plugin hier werfen: http://www.ortwinpinke.de/2010/10/09/dc ... contenido/

VG,

Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

farina
Beiträge: 211
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: Formulargenerator

Beitrag von farina » Di 20. Sep 2016, 07:53

Super, den kannte ich noch gar nicht. Das muss ich mir mal genauer ansehen.
Danke für die Hilfe.
LG

Faar
Beiträge: 1354
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Formulargenerator

Beitrag von Faar » Di 20. Sep 2016, 08:20

farina hat geschrieben:Super, den kannte ich noch gar nicht.
Den Ortwin? Das ist doch unser Oldperl :mrgreen:
:wink:

Aber Spaß beiseite, das Plugin könnte vielleicht nur auf 4.8 laufen, aber vielleicht hat Ortwin das auch schon auf 4.9 portiert?

Andererseits hatte ich mein Kontaktformular für ein Projekt mal mit solcher Art Dingen ausgestattet:
https://jqueryui.com/slider/#rangemin
https://jqueryui.com/datepicker/#default (siehe auch minDate und maxDate)
Das geht da deshalb, weil man direkt an den Formularcode mit einfachem PHP heran kommt.
Aber bis das so passt und tut was es soll, ist auch hier eine Menge zu ändern, zu programmieren und zu testen.
Ferienhaus-Reservierungen sind selten einfach und leicht programmiert.
Wenn man es richtig macht, steckt heftig was dahinter, viel mehr als man im Formular sieht.
Und dann landet man vielleicht wieder bei Ortwin seinem Plugin.

PS. Mein Formular hatte ich überarbeitet (z.B. nur noch ein Template), das aktuell zu downloadende ist noch die alte Version.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

farina
Beiträge: 211
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: Formulargenerator

Beitrag von farina » Di 20. Sep 2016, 08:45

:roll: wenn ich recht überlege, kommt mir Ortwin doch schon bekannt vor :wink:

Ich muss einfach mal sehen, was der Kunde zu zahlen bereit ist. Ansonsten muss er halt mit einer sub-optimalen Lösung leben.
Jetzt versuche ich es gerade mit deinem Formular Faar. Gibt es denn das überarbeitete schon irgendwo?
LG Siggi

Antworten