heimrichhannot / contao-formhybrid
Contains functionality for handling form submissions in the contao frontend.
Installs: 9 830
Dependents: 15
Suggesters: 1
Security: 0
Stars: 1
Watchers: 7
Forks: 0
Open Issues: 0
Type:contao-module
Requires
- php: ^7.0 || ^8.0
- contao-community-alliance/composer-plugin: ~2.4 || ~3.0
- contao/core-bundle: ^4.9
- firebase/php-jwt: ^4.0
- heimrichhannot/contao-ajax: ^1.1.1
- heimrichhannot/contao-be_explanation: ~1.0
- heimrichhannot/contao-haste_plus: ^1.6
- heimrichhannot/contao-inserttag_download: ~1.0
- heimrichhannot/contao-notification_center_plus: ~1.0
- heimrichhannot/contao-status_messages: ^1.0 || ^2.0
- heimrichhannot/contao-submissions: ^1.0.14
- heimrichhannot/contao-versions: ~1.0 || ~2.0
Suggests
- heimrichhannot/contao-exporter: Export entities to pdf
- dev-master
- 3.25.1
- 3.25.0
- 3.24.0
- 3.23.3
- 3.23.2
- 3.23.1
- 3.23.0
- 3.22.2
- 3.22.1
- 3.22.0
- 3.21.3
- 3.21.2
- 3.21.1
- 3.21.0
- 3.20.0
- 3.19.1
- 3.19.0
- 3.18.1
- 3.18.0
- 3.17.0
- 3.16.5
- 3.16.4
- 3.16.3
- 3.16.2
- 3.16.1
- 3.16.0
- 3.15.1
- 3.15.0
- 3.14.1
- 3.14.0
- 3.13.0
- 3.12.0
- 3.11.0
- 3.10.7
- 3.10.6
- 3.10.4
- 3.10.3
- 3.10.2
- 3.10.1
- 3.10.0
- 3.9.4
- 3.9.3
- 3.9.2
- 3.9.1
- 3.9.0
- 3.8.2
- 3.8.1
- 3.8.0
- 3.7.0
- 3.6.0
- 3.5.4
- 3.5.3
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.4
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- v2.x-dev
- 2.11.0
- 2.10.10
- 2.10.9
- 2.10.8
- 2.10.7
- 2.10.6
- 2.10.5
- 2.10.4
- 2.10.3
- 2.10.2
- 2.10.1
- 2.10.0
- 2.9.5
- 2.9.4
- 2.9.3
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.19
- 2.8.18
- 2.8.17
- 2.8.16
- 2.8.15
- 2.8.14
- 2.8.13
- 2.8.12
- 2.8.11
- 2.8.10
- 2.8.9
- 2.8.8
- 2.8.7
- 2.8.6
- 2.8.5
- 2.8.4
- 2.8.3
- 2.8.2
- 2.8.1
- 2.8.0
- 2.7.2
- 2.7.1
- 2.7.0
- 2.6.25
- 2.6.24
- 2.6.23
- 2.6.22
- 2.6.21
- 2.6.20
- 2.6.19
- 2.6.18
- 2.6.17
- 2.6.16
- 2.6.15
- 2.6.14
- 2.6.13
- 2.6.12
- 2.6.11
- 2.6.10
- 2.6.9
- 2.6.8
- 2.6.7
- 2.6.6
- 2.6.5
- 2.6.4
- 2.6.3
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.60
- 2.5.59
- 2.5.58
- 2.5.57
- 2.5.56
- 2.5.55
- 2.5.54
- 2.5.53
- 2.5.52
- 2.5.51
- 2.5.50
- 2.5.49
- 2.5.48
- 2.5.47
- 2.5.46
- 2.5.45
- 2.5.44
- 2.5.43
- 2.5.42
- 2.5.41
- 2.5.40
- 2.5.39
- 2.5.38
- 2.5.37
- 2.5.36
- 2.5.35
- 2.5.34
- 2.5.33
- 2.5.32
- 2.5.31
- 2.5.30
- 2.5.29
- 2.5.28
- 2.5.27
- 2.5.26
- 2.5.25
- 2.5.24
- 2.5.23
- 2.5.22
- 2.5.21
- 2.5.20
- 2.5.19
- 2.5.18
- 2.5.17
- 2.5.16
- 2.5.15
- 2.5.14
- 2.5.13
- 2.5.12
- 2.5.11
- 2.5.10
- 2.5.9
- 2.5.8
- 2.5.7
- 2.5.6
- 2.5.5
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.19
- 2.4.18
- 2.4.17
- 2.4.14
- 2.4.13
- 2.4.12
- 2.4.11
- 2.4.10
- 2.4.9
- 2.4.8
- 2.4.7
- 2.4.6
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.28
- 2.3.27
- 2.3.26
- 2.3.25
- 2.3.24
- 2.3.23
- 2.3.22
- 2.3.21
- 2.3.20
- 2.3.19
- 2.3.18
- 2.3.17
- 2.3.16
- 2.3.15
- 2.3.14
- 2.3.13
- 2.3.12
- 2.3.11
- 2.3.10
- 2.3.9
- 2.3.8
- 2.3.7
- 2.3.6
- 2.3.5
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.20
- 2.2.19
- 2.2.18
- 2.2.17
- 2.2.16
- 2.2.15
- 2.2.14
- 2.2.13
- 2.2.12
- 2.2.11
- 2.2.10
- 2.2.9
- 2.2.8
- 2.2.7
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.12
- 2.1.11
- 2.1.10
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.86
- 2.0.85
- 2.0.84
- 2.0.83
- 2.0.82
- 2.0.81
- 2.0.80
- 2.0.79
- 2.0.78
- 2.0.77
- 2.0.76
- 2.0.75
- 2.0.74
- 2.0.73
- 2.0.72
- 2.0.71
- 2.0.70
- 2.0.69
- 2.0.68
- 2.0.67
- 2.0.66
- 2.0.65
- 2.0.64
- 2.0.63
- 2.0.62
- 2.0.61
- 2.0.60
- 2.0.59
- 2.0.58
- 2.0.57
- 2.0.56
- 2.0.55
- 2.0.54
- 2.0.53
- 2.0.52
- 2.0.51
- 2.0.50
- 2.0.49
- 2.0.48
- 2.0.47
- 2.0.46
- 2.0.45
- 2.0.44
- 2.0.43
- 2.0.42
- 2.0.41
- 2.0.40
- 2.0.39
- 2.0.38
- 2.0.37
- 2.0.36
- 2.0.35
- 2.0.34
- 2.0.33
- 2.0.32
- 2.0.31
- 2.0.30
- 2.0.29
- 2.0.28
- 2.0.27
- 2.0.26
- 2.0.25
- 2.0.24
- 2.0.23
- 2.0.22
- 2.0.21
- 2.0.20
- 2.0.19
- 2.0.18
- 2.0.17
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.1.16
- 1.1.15
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-12-04 12:02:14 UTC
README
Contains functionality for handling form submissions in the contao frontend.
Usage is simple: Include the default palette (FORMHYBRID_PALETTE_DEFAULT) in config.php into your module's tl_module file and remove the fields you don't need for your module.
-> Click here for a diagram visualizing the interaction between the modules formhybrid, formhybrid_list, frontendedit and submissions.
Features
- form validation
- transforming of special field's values depending on their dca properties (e.g. date)
- ajax handling
- store submissions using submissions module if necessary
- optIn entity activation and notification handling
- optOut entity handling
Usage
Install
With composer and Contao 4 Managed Edition:
composer require heimrichhannot/contao-formhybrid ~2.8
Palette handling
- permanentFields must be declared within editableFields in order to get right field position
- a field declared in editableFields whose selector isnt active or is not part of editable fields itself is removed from the final field set
- fields from active selectors that are not within editableFields are removed from final fields
Inserttags
- {{form::FIELDNAME}} returns the formatted value from the field (select value instead of key)
- {{form_value::FIELDNAME}} returns the value of the field
- {{form_submission::FIELDNAME}} returns "field-label : formated field value"
- {{if}}
- {{elseif}}
- {{else}}
- {{endif}}
Developers
Notification center tokens
Formhybrid is notification center ready. It is possible to send 2 E-Mails on Form Submission to the sender (confirmation notification) and one to receiver (submission notification). The following tokens are provided for usage:
Config Callbacks
Additional eval dca config parameters
Frontend Form
We recommend to use Contao Frontendedit. If you can't or need more advanced options:
- Create a module and add all palette fields you want (see config.php FORMHYBRID_PALETTE_DEFAULT and tl_module.php)
- add following code to your module::compile() method to render the form
use HeimrichHannot\FormHybrid\Form;
[...]
$objForm = new Form($this);
$this->Template->form = $objForm->generate();
[...]
More advanced configurations can be archived by extending the Form class and overwrite methods. Following methods are availiable to overwrite (no complete list, see Form and DC_Hybrid classes):
Hooks
JavaScript Events
Opt in handling
FormHybrid comes with build in opt-in handling. Following steps are required to use it:
- add
formHybridAddOptIn
to your modules palette - add
\HeimrichHannot\FormHybrid\FormHybrid::addOptInFieldToTable([TABLE_NAME])
at the end of your entity dca file and update your database - create an opt in notification in notification center and provide
##opt_in_link##
inside text or html
Opt out handling
FormHybrid comes with build in opt-out handling. After calling the opt-out link the entity will be deleted. Following steps are required to use it:
- add
formHybridAddOptOut
to your modules palette and activate it in module configuration - add
\HeimrichHannot\FormHybrid\FormHybrid::addOptOutFieldToTable([TABLE_NAME])
at the end of your entity dca file and update your database - call
HeimrichHannot\FormHybrid\TokenGenerator
in your notification generation code with the opt-out-token from the database, to generate the opt-out-email-token and -url. - add
opt_out_token
andopt_out_link
to your notification center tokens and call them in your messages
Attention: If you enhance already existing data with opt-out-handling, tokens are not automatically generated for existing entries and unsubscription is not possible for existing entries! You need to check if the entry already has an token in your code, before generating opt-out link! Example:
if ($module->formHybridAddOptOut && !$recipientsModel->optOutToken) { $recipientsModel->optOutToken = Form::generateUniqueToken(); $recipientsModel->save(); }
Dublicate entity flag
Set Form::isDuplicateEntityError
to true, to stop before saving and throw error message.
Customization
Add custom submit label
Add your label to $GLOBALS['TL_LANG']['MSC']['formhybrid']['submitLabels']
.