Créer un formulaire avancé avec MailformPlus
La manière la plus simple pour recueillir les avis des internautes sur votre site, de leur permettre de vous contacter pour toute question, consiste bien évidemment à déposer sur une page un formulaire de contact.
Lorsque l'on découvre TYPO3 pour la 1ère fois, on reste assez impressionné par l'outil, par la facilité déconcertante de création de page et d'alimentation du contenu. Cependant, ce que l'on sait moins, c'est comment afficher un formulaire personnalisé en frontend. Afficher, c'est facile finalement... mais comment récupérer les données postées par les internautes ? C'est ce que nous allons voir dans cet article.
1. Les avantages de MailformPlus
Il existe une multitude d'extension sur le TER mais si je ne vous en conseillerais qu'une : MailformPlus (th_mailformplus). Pourquoi ? Parce qu'elle est pratique, complète et assez simple d'utilisation.
A ce jour, nous en sommes à la version 4.0 : http://typo3.org/extensions/repository/view/th_mailformplus/4.0.0/
Voici brièvement les principaux avantages de MailformPlus :
- Tout d'abord, MailformPlus n'a quasiment aucune limite concernant la prise en charge d'un formulaire. Vous pouvez ainsi donc confier la conception de votre formulaire à un intégrateur/designer et vous occuper de l'intégration dans
TYPO3.
- Ensuite, MailformPlus peut effectuer des tests sur les champs saisis par l'internaute. Vous pouvez ainsi rendre des champs obligatoires (c'est banal je l'avoue) mais également effectuer des expression régulières sur les données saisies. C'est ce que nous verrons un peu plus loin.
- Les données peuvent être envoyées à une ou plusieurs adresses mail.
- Possibilité de faire un contrôle des champs via javascript au lieu d'un contrôle sur le serveur (par défaut).
- Possibilité d'envoyer à l'utilisateur un récapitulatif par email des informations saisies ou plus simplement un message de remerciement - en plus de la confirmation en frontend.
- Vous pouvez compléter automatiquement des champs du formulaire si un utilisateur frontend est connecté (ex : nom, prénom... - effectif depuis la version 2.4.0).
- Les données peuvent être stockées dans un table spécifique de la base de données.
- Export CSV possible des données.
- Module backend pour consulter les données enregistrées.
- Les messages d'erreur sont entièrement customisables.
- Usage du Typoscript possible paramétrer les champs de formulaire.
- Captcha supporté.
- Mails au format HTML ou plain text.
- L'utilisateur peut charger des fichiers.
- Possibilité d'étendre le formulaire sur plusieurs pages.
- Support du multilangues en frontend.
- Support du multilangue pour les marqueurs (###LLL:fieldname###).
- Protection contre le spam en TS (doNotCheckReferrer, spamNotify).
Depuis la version 4.0.0, le template peut être spécifié dans les options du plugin.
2. Exemple de formulaire
Voici un formulaire simple contenant des champs input de type text, radio ainsi qu'un champ textarea. Comme vous pouvez le constater, ce formulaire n'a rien d'exceptionnel mais devrait satisfaire la plupart des besoins pour un site Internet.
3. Préparation du template utilisé par MailformPlus
Voici quelques points à vérifier lors de l'installation d'un formulaire sur votre site :
- Le formulaire doit être envoyé à index.php?id=###PID###
- Les champs obligatoires sont :
<input type="hidden" name="id" value="###PID###">
<input type="hidden" name="submitted" value="1">
<input type="hidden" name="L" value="0">
<input type="hidden" name="type" value="###value_type###">
- Placer correctement les marqueurs dans votre template.
Pour un champ de type text, il faut rajouter le marqueur dans l'attribut value :
###value_nomchamp### où nomchamp est le nom du champ input.
Exemple :
Prénom : <input type="text" name="prenom" id="prenom" value="###value_prenom###" />
Pour un champ de type checkbox, il faut rajouter le marqueur suivant dans la balise input :
###selected_nomchamp_valeur### où nomchamp est le nom du champ input, valeur étant la valeur sélectionnable.
Exemple : <input type="checkbox" name="nomchamp" ###selected_nomchamp_valeur###>valeur
Pour un champ radio, il faut rajouter le marqueur suivant dans la balise input :
###checked_nomchamp_valeur### où nomchamp est le nom du champ input, valeur étant la valeur sélectionnable.
Exemple : <input type="radio" name="nomchamp" value="valeur" ###checked_nomchamp_valeur###>
Pour un champ select, il faut rajouter le marqueur suivant dans la balise option :
###selected_nomchamp_valeur### où nomchamp est le nom du champ input, valeur étant la valeur sélectionnable.
Exemple : <select name="situation">
<option value="celibataire" ###selected_situation_celibataire###>célibataire</option>
<option value="marie" ###selected_situation_marie###>marié(e)</option>
<option value="divorce" ###selected_situation_divorce###>divorcé(e)</option>
<option value="veuf" ###selected_situation_veuf###>veuf(ve)</option>
<option value="concubin" ###selected_situation_concubin###>concubin(e)</option>
</select>
Pour un champ textarea, il faut ajouter le marqueur suivant entre <textarea> et </textarea> :
###value_message### où message est le nom du champ.
Exemple :
<textarea name="message">###value_message###</textarea>
- ###ADDITIONAL_MULTIPAGE### permet de proposer un formulaire à valider sur plusieurs pages
Les derniers articles à consulter :
TYPO3 et le e-Commerce (1ère partie)
Quelle extension utiliser pour faire du e-Commerce avec TYPO3 ?
Felogin, la newloginbox intégrée (TYPO3 v 4.2)
Felogin remplace l'extension newloginbox et offre la possibilité d'offrir une boite de connexion pour protéger l'accès à certaines pages.
Créer un Google sitemap (plan du site XML)
Comment créer un plan du site XML ou plus communément un Google sitemap pour améliorer l'indexation de son site par Google.
