Feature: #72309 - EXT:form - Integration of Predefined Forms
See forge#72309
Description
The content element of EXT:form now allows the integration of predefined forms. An integrator can
define forms - for example within a site package - using plugin.
. An
editor can add a new mailform
content element to a page and choose a form from a list of
predefined elements.
There are even more advantages:
- Integrators can build there forms with TypoScript which offers much more possibilities than doing it within the form wizard. Especially, the integrator is able to use stdWrap functionality which are not available when using the form wizard (for security reasons).
- There is no need anymore for editors to use the form wizard. They can choose the predefined forms which are optimized layout-wise.
- Forms can be re-used throughout the whole installation.
- Forms can be stored outside the DB and versioned.
In order to be able to select the pre-defined form in the backend, the form has to be registered using PageTS.
TCEFORM.tt_content.tx_form_predefinedform.addItems.contactForm = LLL:EXT:my_theme/Resources/Private/Language/locallang.xlf:contactForm
Copied!
Example form:
plugin.tx_form.predefinedForms.contactForm = FORM
plugin.tx_form.predefinedForms.contactForm {
enctype = multipart/form-data
method = post
prefix = contact
confirmation = 1
postProcessor {
1 = mail
1 {
recipientEmail = test@mail.com
senderEmail = test@mail.com
subject {
value = Contact form
lang.de = Kontakt Formular
}
}
}
10 = TEXTLINE
10 {
name = name
type = text
required = required
label {
value = Name
lang.de = Name
}
placeholder {
value = Enter your name
lang.de = Name eingeben
}
}
20 = TEXTLINE
20 {
name = email
type = email
required = required
label {
value = Email
lang.de = E-Mail
}
placeholder {
value = Enter your email address
lang.de = E-Mail Adresse eingeben
}
}
30 = TEXTAREA
30 {
name = message
cols = 40
rows = 5
required = required
label {
value = Message
lang.de = Nachricht
}
placeholder {
value = Enter your message
lang.de = Nachricht eingeben
}
}
40 = SUBMIT
40 {
name = 5
type = submit
value {
value = Send
lang.de = Senden
}
}
}
Copied!