Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 24. März 2011 21:22
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Mahlzeit. Nachdem ich hier nicht wirklich weiterkomme, habe ich überlegt, ein vorhandenes PHP-Formular mit CMSMS per UDT zu verheiraten.
Nun stehe ich aber auch da vor dem Problem, wie ich die Formulardaten abschicke (das Formular selbst läuft prima übers UDT). Das Script macht das eigentlich eigenständig, ich weiss nur gerade nicht ob es sinnvoller (und vor allem möglich) wäre, die ausgewählten Formulardaten in den CMSMS-Eigenen Mailer/ Kontaktformular zu schmeissen.
Hat so etwas jemand schonmal gemacht/gesehen und kann mir ein paar zielführende Tips zur Vorgehensweise geben?
edit: Titel angepasst
Beitrag geändert von mike-r (31. März 2011 16:08)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#2 25. März 2011 10:05
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.930
- Webseite
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Äh, ganz verstehe ich deine Frage nicht.
Wenn du ein Formular hast, welches funktioniert, brauchst du dieses nicht in das CMSms eigene Kontaktformular zu integrieren. Es reicht, wenn das Formular in sich funktioniert. Damit bist du sicher auch flexibler und kannst den PHP Code des Formulars einfacher selbst bestimmen.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 30. März 2011 13:21
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Das Formular was ich habe, möchte ich nicht verwenden, da es eigene Routinen für Captcha, Mailversand etc. mitbringt. Ich hätte aber gern alles aus einer Hand, also vom CMS selbst. (im vorliegenden Formular würde ich dann alles Funktionen bis auf das eigentliche Buttonset entfernen wollen)
Meine Vorgehensweise nun ist, dass ich versuche, die entsprechenden Checkboxen per UDT in den Formbuilder zu bringen.
das habe ich getan:
UDT: echo 'bla'
Formbuilder: Aufruf eines benutzerdeinierten Tags.
Gibt mir aus:
[== html ==]
bla
<form>das CMSMS-Formular...
Das ist verwirrend, weil es genau das selbe macht, wie "Benutzerdefinierter Tag, der vor der Anzeige des Formulars ausgeführt werden soll:" im Feld "Integration von benutzerdefinierten Tags".
Wenn ich "Export form reference to UDT as $params['FORM']?:" anhake, gibt er mir nur den Feldnamen (?) aus, aber das bla ist nach wie vor VOR dem Formular.
Ich komme da irgendwie nicht weiter, wie bekomme ich selbsterstellte Buttonsets in das Formular ohne es im Formbuilder zurechtzuklicken?
Und warum wird egtl. das UDT vor dem eigentlichen Formular ausgeführt und nicht darin?
EDIT: Ich rufe das UDT jetzt direkt im Template auf, das scheint zu laufen :eek:
Beitrag geändert von mike-r (30. März 2011 13:30)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#4 31. März 2011 16:05
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Optisch hybsch, und funktional wie ich das haben wollte habe ich nun, jetzt stehe ich aber (immer noch) vor dem Problem die Werte weiterzureichen.
Mal mein kompletter Ansatz:
Ich habe ein UDT mit ein paar Formularfeldern, das sieht etwa so aus:
[== html ==]
<input type="checkbox" name="schrauben" id="schrauben" value="ok" />
Material:
<select name="material" id="material" size="1" disabled>
<option value="metall">metall</option>
<option value="holz">holz</option>
<option value="gold">gold</option>
</select>
Diese Formfelder ziehe ich ins Formbuilder-template per {udtname} rein.
Wird alles prima angezeigt.
nun möchte ich aber die angeklickten Werte versenden. Die Modulhilfe, wie auch die Hilfe im Bestätigungstemplate:
Dies ist eine weitere Option, um via $fieldname_obj, $alias_obj oder $fld_#_obj die Feldwerte abzufragen (jedes Feld enthält ein Objekt):
name Feld-name
type Feldtyp
id Interne Feld-ID
value Menschen-lesbarer Wert
valueArray Array der Feldwerte
Beispiel:{$fld_1_obj->name} = {$fld_1_obj->value}
Alternative Feldnamen können wechselweise verwendet werden (dies ist insbesondere dann nützlich, wenn Smarty Probleme mit Zeichen außerhalb von ASCII 32-126 hat).
Wenn Sie diese dem Formular hinzufügen, sind weitere Felder verfügbar.
bringen mich nicht wirklich weiter.
Im IRC habe ich mal dazu gefragt, aber die für mich scheinbar relevanten Infos:
[22:20:05] <chris1234p> but UDTs are PHP, so you cant use smarty
[22:20:08] <chris1234p> so you will need to od
[22:20:11] <chris1234p> to do*
[22:20:27] <chris1234p> $FBID = $smarty->get_template_vars('FBid');
[22:20:37] <chris1234p> then use $FBID as a php variable
sind für mich auch etwas zu hoch.
Wo schreibe ich das $FBID = ... rein? In mein UDT?
Und wie nutze ich das dann als variable? Bzw. wie müssen meine IDs&Co heissen? Wie kann ich die Werte im Bestätigungstemplate verwenden?
(Ähnliches Problem wie hier, ich wollte aber den Thread nicht kapern, da ich nicht sicher bin, ob wir da das selbe suchen)
Beitrag geändert von mike-r (31. März 2011 16:11)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#5 03. April 2011 14:24
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Keiner eine Idee?
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#6 03. April 2011 14:41
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Du möchtest diese Felder also auch noch versenden.
Okay.
Und was genau hindert Dich daran?
Fehlt der Submit-Button?
Wird das Formular nicht abgeschickt?
Kommen die Werte nicht an?
Tanzen rosa Elefanten über dem Bildschirm?
(Letzteres fänd ich irgendwie voll cool )
Ich vermute mal die Werte kommen nicht an.
Das liegt daran, dass, wie ich schonmal in einem anderen Zusammenhang erwähnte, die Felder in ihrem Name-Attribut ein ganz bestimmtes Prefix haben müssen. Nämlich die ID der Modul-Instanz des Formbuilders. Sonst ignoriert er diese Felder. Wenn ich das richtig sehe, ist dieses 'FBid' eine Smarty-Variable, die diese ID entalten soll. Ich weiß jetzt nicht genau wie Du Deinen UDT aufrufst bzw. wie er aufgebaut ist, aber es gibt zwei Möglichkeiten um in Deinem UDT and diese ID heranzukommen:
1. Parameter übergeben:
Im Template: {deinUDT fb_id="$FBid"}
Im UDT (ganz am Anfang): $fb_id = $params['fb_id'];
2. wie chris1234p es erklärt hat:
Im UDT: $fb_id = $smarty->get_template_vars('FBid');
Dann kannst Du im UDT jedem Inputfeld als Name-Attribut folgendes geben:
echo '<select name="'.$fb_id.'material" id="'.$fb_id.'material" size="1" disabled>';
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#7 03. April 2011 15:05
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Ich habe jetzt wie von dir beschrieben im Template:
[== smarty ==]
{$fb_form_start}
{udtname fb_id="$FBid"}
und im Udt:
[== php ==]
$fb_id = $params['fb_id'];
$fb_id = $smarty->get_template_vars('FBid');
echo '
...
Anzahl:<select name="'.$fb_id.'anzahl" id="'.$fb_id.'anzahl" class="anzahl">
Gibt mir
[== html ==]
<select name="anzahl" id="anzahl" class="anzahl">
aus.
Was hab ich übersehen?
Edit: im UDT habe ich abwechselnd die Aufrufe 1+2 getestet...
Beitrag geändert von mike-r (03. April 2011 15:16)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#8 03. April 2011 15:16
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
1.
Im Template:
{deinUDT fb_id="$FBid"}
Und im UDT:
$fb_id = $params['fb_id'];
ODER
2.
Im Template:
und im UDT
$fb_id = $smarty->get_template_vars('FBid');
eins von beiden reicht.
Aber wenn das nichts bringt, dann wird die Variable für die Forbmuilder-ID leer sein.
Lass Dir doch mal mit {get_template_vars} anzeigen, ob die überhaupt da ist.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#9 03. April 2011 18:17
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Hab ich beide Varianten getestet, FBid ist jedes Mal leer.
Aber wenn das nichts bringt, dann wird die Variable für die Forbmuilder-ID leer sein.
Lass Dir doch mal mit {get_template_vars} anzeigen, ob die überhaupt da ist.
Wonach schau ich da genau? (dass die IDs jeweils leer sind, seh ich ja auch im Quellcode)
Beitrag geändert von mike-r (03. April 2011 18:18)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#10 03. April 2011 18:55
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Ich verstehe ehrlich gesagt nicht so recht was genau Du da machst und warum.
Du hast ein Formular, welches funktioniert wie Du das haben willst, oder?
Wozu das ganze jetzt nochmal in den Fombuilder reinquetschen?
Was soll denn der damit machen, wenn es abgesendet wurde?
Da hättest Du Dein Formular doch auch gleich komplett mit dem Formbuilder erstellen können.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#11 03. April 2011 19:59
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Wie eigenes Formular (udt) in Formbuilder weiterverarbeiten?
Ich möchte die Daten im Formbuilder haben, da ich dort eh schon ein FB-Formular habe mit Name, Adresse usw. Die Daten sollen dann auch zusammen verarbeitet werden (Mail&Co).
Das Formular, was ich habe, wollte ich ursprünglich auch mit dem FB bauen, ich sehe da nur leider keine Möglichkeit
[ ] Nägel -> Grösse -> Menge
zu gruppieren.
Siehe auch dieser Thread
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
Seiten: 1