Skip to content

Latest commit

 

History

History
331 lines (235 loc) · 9.71 KB

yform_modul_actions.md

File metadata and controls

331 lines (235 loc) · 9.71 KB

YForm-Modul: Actions

Inhalt

Zweck der Aktionen

Aktionen defineren, was nach dem Versand des Formulars mit den Formulardaten passieren soll, z.B. der Versand einer E-Mail über ein E-Mail-Template oder die Speicherung der Daten in einer Tabelle.

Die Action-Klassen sind hier zu finden:
src/addons/yform/lib/yform/actions/

Beispiele (Schreibweisen) gibt es für yForm Formbuilder und PHP

Die PHP-Beispiele können in diesem Formular getestet/eingesetzt werden:

<?php
$yform = new rex_yform();
$yform->setObjectparams('form_action', rex_getUrl(REX_ARTICLE_ID,REX_CLANG_ID));

$yform->setValueField('text', array("wert1","Wert 1"));
$yform->setValidateField('empty', array("wert1","Bitte geben Sie einen Namen an!"));

echo $yform->getForm();
?>

Action-Klassen

callback

Ruf eine Funktion oder Klasse auf.

// allgemeine Definition
action|callback|mycallback / myclass::mycallback

// im YForm-Formbuilder
folgt ...

// in PHP
folgt ...

copy_value

Kopiert Eingaben vom Feld mit dem Label label_from in das Feld mit dem Label label_to

// allgemeine Definition
action|copy_value|label_from|label_to

// im YForm-Formbuilder
hidden|user
text|name|Name
action|copy_value|name|user

action|db|rex_warenkorb
action|html|Daten gespeichert	

// in PHP	
$yform->setValueField('hidden', array("user"));
$yform->setValueField('text', array("name","Name"));
$yform->setActionField('copy_value', array("name","user"));

$yform->setActionField('db', array("rex_warenkorb"));
$yform->setActionField('html', array("Daten gespeichert"));

create_table

Erstellt eine Datenbank-Tabelle. Formular-Label werden dabei als Feldnamen in die neue Tabelle gespeichert. Die neue Tabelle erscheint dabei nicht in der Redaxo-Tabellen-Struktur. Mit %TABLE_PREFIX% im Tabellennamen kann man den Prefix der REDAXO Tabellen setzen.

// allgemeine Definition
action|create_table|tablename

// Beispiel Formbuilder
text|vorname|Vorname
text|name|Name

action|create_table|rex_order

// in PHP
$yform->setValueField('text', array("vorname","Vorname"));
$yform->setValueField('text', array("name","Name"));

$yform->setActionField('create_table', array("rex_order"));

db

Speichert oder aktualisiert Formulardaten in einer Tabelle. Dabei werden die Label und deren Eingaben in die gleichnamigen Tabellenfelder gespeichert. Mit %TABLE_PREFIX% im Tabellennamen kann man den Prefix der REDAXO Tabellen setzen.

// allgemeine Definition
action|db|tblname|[where(id=2)/main_where]

// im YForm-Formbuilder
text|vorname|Vorname
text|name|Name
text|plz|PLZ
text|ort|Ort

objparams|getdata|true
objparams|main_table|rex_warenkorb
objparams|main_where|id=1

action|db|rex_warenkorb|main_where
action|html|Daten gespeichert
// in Beispiel PHP
$yform->setValueField('text', array("vorname","Vorname"));
$yform->setValueField('text', array("name","Name"));
$yform->setValueField('text', array("plz","PLZ"));
$yform->setValueField('text', array("ort","Ort"));

$yform->setObjectparams('getdata', TRUE);
$yform->setObjectparams('main_where', 'id=1');
$yform->setObjectparams('main_table', 'rex_warenkorb');

$yform->setActionField('db', array("rex_warenkorb", "main_where"));
$yform->setActionField('html', array("Daten gespeichert"));

db_query

Führt eine Abfrage aus, z.B. um hier Werte aus Eingabefeldern in die Abfrage einzusetzen.

// allgemeine Definition
action|db_query|query|Fehlermeldung

// im YForm-Formbuilder
text|name|Name
text|email|E-Mail-Adresse
action|db_query|insert into rex_ycom_user set name = ?, email = ?|name,email

// in PHP
$yform->setValueField('text', array("name","Name"));
$yform->setValueField('text', array("email","|E-Mail-Adresse"));
$yform->setActionField('db_query', array("insert into rex_ycom_user set name = ?, email = ?", "name,email"));

email

Sendet E-Mail mit Betreff und Body an angegebene E-Mail-Adresse. Eingaben aus dem Formular können als Platzhalter im Mailbody verwendet werden.

// allgemeine Definition
action|email|[email protected]|[email protected]|Mailsubject|Mailbody###name###

im YForm-Formbuilder
text|name|Name
action|email|from@mustermann|[email protected]|Test|Hallo ###name###


// in Beispiel PHP
$yform->setValueField('text', array("name","Name"));
$yform->setActionField('email', array("from@mustermann", "[email protected]", "Test", "Hallo ###name###"));

encrypt_value (wird nicht mehr fortgeführt)

Verschlüsselt eine Eingabe in Feld mit Label.

// allgemine Definition
action|encrypt|label[,label2,label3]|md5|[save_in_this_label]

im YForm-Formbuilder
text|pass|Password
action|encrypt_value|pass|md5

action|db|rex_warenkorb
action|html|Daten gespeichert	

// In Beispiel PHP
$yform->setValueField('text', array("pass", "Password"));
$yform->setActionField('encrypt_value', array("pass", "md5"));	
$yform->setActionField('db', array("rex_warenkorb"));
$yform->setActionField('html', array("Daten gespeichert"));

fulltext_value (wird nicht mehr fortgeführt)

Erklärung folgt.

// allgemine Definition
action|fulltext_value|label|fulltextlabels with ,

// im YForm-Formbuilder
folgt 

// in PHP
folgt

html

Gibt HTML-Code aus.

// allgemeine Definition
action|html|[html]

// im YForm-Formbuilder
action|html|<b>fett</b>

// In PHP
$yform->setActionField('html', array("<b>fett</b>"));

readtable

Liest aus der angegebenen Tabelle den Feldinhalt von feldname anhand der Eingabe im Formular-Feld label den gefundenen Datensatz. Das gesuchte Tabellen-Feld labelmuss im Formular vorhanden sein.
Damit kann man anhand eines Eingabefeldes Daten aus einer Tabellen selektieren. Die Werte des gefundenen Datensatzes stehen dann auch zur Weiterverarbeitung z.B. im E-Mail-Versand zur Verfügung.

// allgemeine Definition
action|readtable|tablename|feldname|label

// im YForm-Formbuilder
text|name|Name
action|readtable|shop_user|fname|name

// In PHP
$yform->setValueField('text', array("name","Name"));
$yform->setActionField('readtable', array("shop_user", "fname", "name"));

redirect

Führt nach dem Abschicken des Formulars eine Weiterleitung aus.

// allgemeine Definition
action|redirect|Artikel-Id oder Externer Link|request/label|field

// im YForm-Formbuilder
//Umleitung auf internen Artikel 32
action|redirect|32  	

// In PHP
$yform->setActionField('redirect', array("32"));

showtext

Gibt einen Antworttext zurück, der als Plaintext, HTML oder über Textile formatiert werden kann.

// allgemeine Definition
action|showtext|Antworttext|<p>|</p>|0/1/2 (plaintext/html/textile)

// im YForm-Formbuilder
action|showtext|Hallo das ist Redaxo|<p>|</p>|0
action|showtext|Hallo das ist *Redaxo*|||2

// In Beispiel PHP
$yform->setActionField('showtext', array("Hallo das ist Redaxo", "<p>", "</p>", "0"));
$yform->setActionField('showtext', array("Hallo das ist *Redaxo*", "", "", "2"));

// Ausgabe nach Submit
<p>Hallo das ist Redaxo</p>	
<p>Hallo das ist <strong>Redaxo</strong></p>

tpl2email (Plugin email)

Versendet eine E-Mail über ein YForm-E-Mail-Template. Der Parameter emailtemplate ist der Key des E-Mail-Templates.

// allgemeine Definition
action|tpl2email|emailtemplate|emaillabel|[[email protected]]

// im YForm-Formbuilder
text|email|E-Mail-Empfänger
action|tpl2email|emailtemplate|email

// In Beispiel PHP
$yform->setValueField('text', array("email","E-Mail-Empfänger"));  	
$yform->setActionField('tpl2email', array("emailtemplate", "email"));

Hinweis:

  • Wird keine E-Mail-Adresse angegeben, wird die E-Mail-Adresse verwendet, die bei System/Einstellungen hinterlegt ist.
  • emaillabel ist das E-Mail-Label, Formular-Element
  • Wird eine E-Mail-Adresse angegeben, wird die E-Mail des Labels überschrieben.

Die Action lässt sich auch mehrfach verwenden, sodass bspw. noch eine Bestätigungs-E-Mail an einen vorgegebenen Empfänger versendet werden kann.

// im YForm-Formbuilder
text|email|E-Mail-Empfänger
action|tpl2email|emailtemplate|email
action|tpl2email|emailtemplate||[email protected]

// In Beispiel PHP
$yform->setValueField('text', array("email","E-Mail-Empfänger"));  	
$yform->setActionField('tpl2email', array("emailtemplate", "email"));
$yform->setActionField('tpl2email', array("emailtemplate", "", "[email protected]"));

wrapper_value (wird nicht mehr fortgeführt)

// allgemeine Definition
action|wrapper_value|label|prefix###value###suffix

// im YForm-Formbuilder
text|telefon|Telefon
action|wrapper_value|telefon|<a href="tel:+49###value###">###value###</a>
action|db|rex_warenkorb
action|html|Daten gespeichert	

// In Beispiel PHP
$yform->setValueField('text', array("telefon", "Telefon"));
$yform->setActionField('wrapper_value', array("telefon", "<a href="tel:+49###value###">###value###</a>"));
$yform->setActionField('db', array("rex_warenkorb"));
$yform->setActionField('html', array("Daten gespeichert"));