Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Re: XForm Formular direkt per PHP bauen :)
he he, bittschön So hat man finde ich viel mehr Möglichkeiten. Die wenigsten Redakteuere fummeln ausserdem im Formbuilder herum.
Re: XForm Formular direkt per PHP bauen :)
ja genau... ich machte bisher immer alles selber ohne xForm sobald es etwas anspruchsvoller wurde. Ich denke ein normales Formular mit einer Mailfunktion hab ich so auch noch schneller geschrieben als in der xForm-Sprache, konnte mich damit nie anfreunden...
Re: XForm Formular direkt per PHP bauen :)
Hi,
bitte, könnte mir jemand erklären, wie ich die Daten am Ende in eine Tabelle schreibe?
Sprich das php-Pendant zu "Bei Submit: Nur in Datenbank speichern..." aus dem xform-Modul.
Ich vermute es ist etwas wie aber bisher kein Erfolg damit.
Ach ja, und den Debug Modus würde ich dann auch gern verwenden können. Habe jetzt drin, aber keine Ausgabe...
Ciao, Lars
bitte, könnte mir jemand erklären, wie ich die Daten am Ende in eine Tabelle schreibe?
Sprich das php-Pendant zu "Bei Submit: Nur in Datenbank speichern..." aus dem xform-Modul.
Ich vermute es ist etwas wie
Code: Alles auswählen
$xform->setObjectparams('main_table', 'rex_meinetabelle');
Ach ja, und den Debug Modus würde ich dann auch gern verwenden können. Habe jetzt
Code: Alles auswählen
$xform->setDebug(TRUE);
Ciao, Lars
Re: XForm Formular direkt per PHP bauen :)
Setzt doch einfach ein INSERT INTO ab. Ganz einfach.
Re: XForm Formular direkt per PHP bauen :)
also ganz ohne xform code...
Re: XForm Formular direkt per PHP bauen :)
yup. deshalb hab ich mir das ganze auch zurechtgebaut um eben hier mehr direkten einfluss zu haben wie ich was wo speichere. und die ganzen werte stehen ja in $formData[].
Re: XForm Formular direkt per PHP bauen :)
Cool. Danke!
Re: XForm Formular direkt per PHP bauen :)
Hi!
Gibt's eigentlich hier eine Möglichkeit, den Standardwert / Rückgabewert für die Checkbox festzulegen? Sowas wie:
Im Moment bekomme ich ja nur 0/1 als Antwort raus.
Gibt's eigentlich hier eine Möglichkeit, den Standardwert / Rückgabewert für die Checkbox festzulegen? Sowas wie:
Code: Alles auswählen
$xform->setValueField('checkbox', array('agb', 'Ich habe die AGB gelesen', 'nein,ja'));
Re: XForm Formular direkt per PHP bauen :)
Kannst du nicht einfach per If-Abfrage dir hier was mit dem Rückgabewert zusammenbauen. Bei der PHP XForm Variante ist das ja gerade der Vorteil nochmal was zu machen mit den Rückgabewerten ehe man sie in ne Email packt.
Re: XForm Formular direkt per PHP bauen :)
Doch, kann ich. Aber bevor ich das mache, frage ich lieber nach Zumal das meiste zu XForm + PHP ja hier dokumentiert ist.RexDude hat geschrieben:Kannst du nicht einfach per If-Abfrage dir hier was mit dem Rückgabewert zusammenbauen.
Bei einer Auswahlliste ist es ja bspw. möglich, "value" und "Beschreibung" anzugeben, weil es ja auch für die Ausgabe benötigt wird.
Re: XForm Formular direkt per PHP bauen :)
hallo,
mich würde noch interessieren wie ich das xform template ansprechen kann - ich habs mit
probiert aber es kommt kein email an
und der debug modus wär wirklich noch super
geht leider nicht
mich würde noch interessieren wie ich das xform template ansprechen kann - ich habs mit
Code: Alles auswählen
$xform->setActionField('db2email', array('contact','', 'email@domain.at'));
und der debug modus wär wirklich noch super
Code: Alles auswählen
$xform->setDebug(true);
Re: XForm Formular direkt per PHP bauen :)
Hi,
Templates habe ich noch nie wirklich benutzt. Mache dass direkt per PHP um so auch die volle Kontrolle zu haben. Ist aber in dem Modul mit drin als Beispiel.
Und wegen Debugmodus müsstest du vielleicht mal schauen wie das das Formbuilder Modul macht. Ich meine da gabs auch einen Debug Modus den man einschalten konnte. Kann mich aber auch irren.
Templates habe ich noch nie wirklich benutzt. Mache dass direkt per PHP um so auch die volle Kontrolle zu haben. Ist aber in dem Modul mit drin als Beispiel.
Und wegen Debugmodus müsstest du vielleicht mal schauen wie das das Formbuilder Modul macht. Ich meine da gabs auch einen Debug Modus den man einschalten konnte. Kann mich aber auch irren.
Re: XForm Formular direkt per PHP bauen :)
danke im formbuilder steht das mit dem debug genauso drinnen - aber geht eben leider nicht.
ich hab das jetzt ohne template gemacht
für alle dies brauchen können - danke an rexdude
ich hab das jetzt ohne template gemacht
für alle dies brauchen können - danke an rexdude
Code: Alles auswählen
<?php
$xform = new rex_xform();
//$xform->setDebug(TRUE);
// value vields
$xform->setValueField('html', array('name', 'Ich interessiere mich für<div class="clear"> </div>'));
$xform->setValueField('checkbox', array('buch', 'Buch', 'nein,ja'));
$xform->setValueField('checkbox', array('tv', 'TV', 'nein,ja'));
$xform->setValueField('html', array('name', '<div class="clear"> </div>'));
$xform->setValueField('text', array('anrede', 'Anrede *'));
$xform->setValueField('text', array('vorname', 'Vorname *'));
$xform->setValueField('text', array('nachname', 'Nachname *'));
$xform->setValueField('text', array('strasse', 'Straße / Nr.'));
$xform->setValueField('text', array('plz', 'PLZ / Ort'));
$xform->setValueField('text', array('email', 'E-Mail *'));
$xform->setValueField('captcha', array('Bitte tragen sie den Text ein', 'Bitte prüfen das Text Eingabe Feld'));
$xform->setValueField('submit', array('Senden', 'Abschicken'));
// validate fields
$xform->setValidateField('empty', array('email', 'Bitte tragen Sie Ihre E-Mail Adresse ein'));
$xform->setValidateField('email', array('email', 'Bitte überprüfen Sie Ihre E-Mail Eingabe'));
$xform->setValidateField('empty', array('anrede', 'Bitte tragen Sie Ihre Anrede ein'));
$xform->setValidateField('empty', array('vorname', 'Bitte tragen Sie Ihren Vornamen ein'));
$xform->setValidateField('empty', array('nachname', 'Bitte tragen Sie Ihren Nachnamen ein'));
// other stuff
$xform->setRedaxoVars($REX['ARTICLE_ID'], $REX['CUR_CLANG']);
if (($form = $xform->getForm()) == '') {
// form submitted
$formData = $xform->objparams['value_pool']['email'];
$mailFrom = $formData['email'];
$mailSubject = 'Anfrage - www.domain.at';
// mail body
$mailBody = '';
$mailBody .= 'Ich interessiere mich für:' . PHP_EOL;
$mailBody .= 'Buch: ' . $formData['buch'] . PHP_EOL;
$mailBody .= 'TV: ' . $formData['tv'] . PHP_EOL . PHP_EOL;
$mailBody .= 'Anrede: ' . $formData['anrede'] . PHP_EOL;
$mailBody .= 'Vorname: ' . $formData['vorname'] . PHP_EOL;
$mailBody .= 'Nachname: ' . $formData['nachname'] . PHP_EOL;
$mailBody .= 'Straße / Nr: ' . $formData['strasse'] . PHP_EOL;
$mailBody .= 'PLZ / Ort: ' . $formData['plz'] . PHP_EOL;
$mailBody .= 'E-Mail: ' . $formData['email'] . PHP_EOL;
// init mailer
$mail = new rex_mailer();
if ($formData['buch'] == 'ja') {$mail->AddAddress('buch@domain.de', 'buch@domain.de');}
if ($formData['tv'] == 'ja') {$mail->AddAddress('tv@domain.de', 'tv@domain.de');}
$mail->WordWrap = 80;
$mail->FromName = $mailFrom;
$mail->From = $mailFrom;
$mail->Sender = $mailFrom;
$mail->Subject = $mailSubject;
$mail->Body = nl2br($mailBody);
$mail->AltBody = strip_tags($mailBody);
// send mail
if ($mail->Send()) {
echo '<p>Vielen Dank für Ihr Interesse an Projekt!<br>
Wir bemühen uns, Ihre Anfrage schnellstmöglich zu bearbeiten.</p>';
} else {
echo '<p>FEHLER - Bitte versuchen Sie es noch einmal.</p>';
}
} else {
// show form
echo $form;
}
?>
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen :)
Mit
bekomme ich
Das Text-Input bekommt also nicht die das erforderliche name="name". So kann ich die Werte nicht in die DB schreiben ;((
Anders bei einem hidden input, dort funktionierts.
An was liegt das?
Git es irgendwo eine klare, explizite Übersicht über die direkten php-Anweisungen für XForm? ich hab auch nach seeeehr langem Suchen nirgends etwas gefunden....
Mit Dank für Hinweise!
Code: Alles auswählen
$xform->setValueField('text', array('name', 'Name'));
Code: Alles auswählen
<p class="formtext formlabel-name" id="xform-formular-name">
<label class="text " for="xform-formular-field-1" >Name</label>
<input type="text" class="text " name="FORM[formular][1]" id="xform-formular-field-1" value="" />
</p>
Anders bei einem hidden input, dort funktionierts.
An was liegt das?
Git es irgendwo eine klare, explizite Übersicht über die direkten php-Anweisungen für XForm? ich hab auch nach seeeehr langem Suchen nirgends etwas gefunden....
Mit Dank für Hinweise!
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: XForm Formular direkt per PHP bauen :)
Hej,
> Das Text-Input bekommt also nicht die das erforderliche name="name". So kann ich die Werte nicht in die DB schreiben
die Werte schreibt XForm in die Datenbank. Da brauchst du nix zu machen.
Das was du aber haben willst, heißt
oder
vg Thomas
> Das Text-Input bekommt also nicht die das erforderliche name="name". So kann ich die Werte nicht in die DB schreiben
die Werte schreibt XForm in die Datenbank. Da brauchst du nix zu machen.
Das was du aber haben willst, heißt
Code: Alles auswählen
objparmas|real_field_names|true
Code: Alles auswählen
$xform->setObjectparams('real_field_names',true);
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen :)
Dankeschön. Hab zudem gemerkt, dass man aus Cheatset zu Redaxo 4.5. diese xForm Attribute herauslesen kann. (Für alle, die diese Frage auch haben werden).
Zudem: geht sowas eigentlich in einem Modul:
ich meine: Kann die Sprachvariablen a) in Modulen verwenden b) innerhalb dieses XForm-Aufbaus? Muss die Inkludierung der Sprachfiles im config-File verändert werden?
Mit Dank!
Zudem: geht sowas eigentlich in einem Modul:
Code: Alles auswählen
$xform->setValueField('text', array('name', $I18N->msg('donationcenter_thanxUpage_name')));
Mit Dank!
Re: XForm Formular direkt per PHP bauen :)
So viel ich weiss gibts $I18N per default nicht im Frontend.
Ich vermute du musst es explizit anlegen, so wie das REDAXo eigentlich an dieser Stelle auch macht: https://github.com/redaxo/redaxo4/blob/ ... #L132-L135
Ich vermute du musst es explizit anlegen, so wie das REDAXo eigentlich an dieser Stelle auch macht: https://github.com/redaxo/redaxo4/blob/ ... #L132-L135
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen :)
Merci. Das übersteigt mein Wissen. Wäre echt praktisch gewesen.
Re: XForm Formular direkt per PHP bauen :)
$I18N ist halt eigentlich nur fürs Backend gedacht.
Aber wie gesagt. Die 3 Codezeilen von oben rein, dann hast du's.
Und $REX['CUR_CLANG'] (Frontend) auf $REX['LANG'] (Backend) ummappen musst du noch. rex_create_lang() erwartet ja ein string wie "de_de".
Aber wie gesagt. Die 3 Codezeilen von oben rein, dann hast du's.
Und $REX['CUR_CLANG'] (Frontend) auf $REX['LANG'] (Backend) ummappen musst du noch. rex_create_lang() erwartet ja ein string wie "de_de".
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen :)
Wie gesagt, ich versteh Bahnhof. Für mich ist Addonbau mehr ein Puzzlen von Codestücken...
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen :)
"Ummappen" ist mir ein fremder Begriff. Und ich erwarte nicht, dass Du mir alles codest. Ich machs sonst mit dem Addon "Platzhalter". Ich finde einfach, das hat ein so unübersichtliches Interface, find kaum noch was dort.
Re: XForm Formular direkt per PHP bauen :)
Es gitb auch das String Table Addon
Aber du willst das doch mitliefern mit deinem eigenen Addon oder? Dann macht es schon Sinn es in den Langfiles zu belassen, zumal ja hier ein Benutzer eh nix änder wird oder soll.
Naja rex_create_lang() erwartet z.b. "de_de" oder "en_gb". Du hast aber nur 0,1,2 etc. für $REX[CUR_CLANG]. Also wenn 1 englisch ist muss 1 = en_gb sein. Den Rest überlasse ich jetzt aber dir
Aber du willst das doch mitliefern mit deinem eigenen Addon oder? Dann macht es schon Sinn es in den Langfiles zu belassen, zumal ja hier ein Benutzer eh nix änder wird oder soll.
Naja rex_create_lang() erwartet z.b. "de_de" oder "en_gb". Du hast aber nur 0,1,2 etc. für $REX[CUR_CLANG]. Also wenn 1 englisch ist muss 1 = en_gb sein. Den Rest überlasse ich jetzt aber dir
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen - $I18N
Habs mal so gelöst, da man ja nicht wissen kann ob '0' nun deutsch oder irgendeine andere Sprache ist:
Code: Alles auswählen
// get language of visitor as 'de', 'en' etc... and bring to I18N-Format. We want to use Backend lang file for module
$curlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if ($curlang == 'de')
{$currentlanguage = 'de_de';}
if ($curlang == 'en')
{$currentlanguage = 'en_gb';}
else {}
// include $I18N (Frontend has no I18N)
if (!is_object($I18N)) {
$includepath = $REX['INCLUDE_PATH'].'/addons/donationcenter/lang/';
$I18N = rex_create_lang($currentlanguage,$includepath,true);
}
Zuletzt geändert von summselbrumm!media am 25. Mai 2015, 12:34, insgesamt 1-mal geändert.
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen :)
Dann noch eine Frage zur Validierung. Was ist daran falsch?
Sollte dies nicht alles durchlassen ausser eine 9? Sind die Slashes und Klammern so, wie es XForm benötigt? (Ist so im XForm-Modul angegeben). Was auch immer ich für Varianten probiere a-zA-Z etc., immer kommt die Meldung. Um das Namens und das Nachrichtenfeld zu schützen, würde ich folgendes machen:
Code: Alles auswählen
$xform->setValidateField('preg_match', array('name', '/[9]/i', $I18N->msg('donationcenter_validation_nosymbols')));
Code: Alles auswählen
$xform->setValidateField('preg_match', array('name', '/[^$+{}']/', $I18N->msg('donationcenter_validation_nosymbols')));
-
- Beiträge: 44
- Registriert: 6. Jan 2011, 14:39
Re: XForm Formular direkt per PHP bauen - setValidateField
Anscheinend klappts so
Das wäre dann z.B. "nur Buchstaben, Bindestrich und Punkt und der Eintrag muss zwischen 5 und 30 Zeichen lang sein".
Code: Alles auswählen
$xform->setValidateField('preg_match', array('name', '/^[a-zA-ZäüöéàèÄÜÖÉÀÈß +.-]{5,30}$/', $I18N->msg('donationcenter_validation_nosymbols')));
Zuletzt geändert von summselbrumm!media am 25. Mai 2015, 12:33, insgesamt 1-mal geändert.