Table des matières
- eZ Publish : Comment créer des formulaires avec eZ Publish
- Creating a new form class -- Créer une nouvelle classe «formulaire»
- Form configuration settings -- Paramètres de configuration du formulaire
- Form template creation and modification -- Création et modification des templates du formulaire
- Creating the form object -- Créer l'objet formulaire
- Accessing collected information -- Accéder aux informations collectées
- Summary and resources -- Résumé et ressources
Form configuration settings -- Paramètres de configuration du formulaire
Date de publication: le vendredi 27 mai 2011 à 10h05
Dernière modification: par Pascal BOYER le vendredi 27 mai 2011 à 11h36
Defining how information is collected / Définir la manière dont les informations sont collectées
The settings/collect.ini file contains some useful form options.
Le fichier settings/collect.ini contient quelques options intéressantes relatives aux formulaires.
Recall from the first article in this series that eZ Publish reads basic settings from the default INI files, which are overriden by any settings in the specific siteaccess overrides, which are overridden by settings in the global override files. You should never modify the default INI files.
Souvenez-vous que dans le premier article de ces séries de How to il est expliqué que eZ Publish lit ses paramétrages de base dans les fichiers INI, paramétrages surchargés par n'importe quel paramètre placé dans les surcharges d'un siteaccess spécifique et qui sont à leur tour surchargés par les paramètres des fichiers de surcharges globales. Vous ne devez donc jamais modifier les fichiers INI par défaut.
The settings below should be created in the file collect.ini.append.php located either:
Les paramètres ci-dessous doivent être créés dans le fichier collect.ini.append.php situé soit:
-
In the directory for the siteaccess (in settings/siteaccess/[name_of_siteaccess]/) that will display the form; or
Dans le répertoire du siteaccess (dans settings/siteaccess/[nom_du_siteaccess]/) qui affichera le formulaire, soit...
-
In the override directory (in settings/override/), meaning it will apply to all siteaccesses.
...dans le répertoire des surcharges globales (dans settings/override/),et auquel cas les paramètres seront appliqués à tous les siteaccess.
If the override file does not already exist, you must create it.
Si ce fichier de surcharge n'existe pas déjà, créez le.
The sections below show the settings that need to be included in the INI file. Note that lines starting with hash symbols are comments.
Les paragraphes qui suivent décrivent les paramètres que doit contenir ce fichier INI. Retenez que les lignes commençant par un dièse (#) sont des commentaires.
[InfoSettings] block / Le bloc [InfoSettings]
The setting below specifies that there is an information collector based on the class ID “membership_application_form”, and that the identifier for the information collector is the same as the class name.
Le paramètre ci-dessous spécifie qu'il existe un collecteur d'information basé sur l'identifiant de classe membership_application_form et que cet identifiant est identique au nom de la classe
[InfoSettings] # Matches class id or identifier to information collection type TypeList[membership_application_form]=membership_application_form
[EmailSettings] block / Le bloc [EmailSettings]
Sometimes it is useful to send an email summarizing the results of each form submission. This is not required for objects such as polls, but we will use it in our membership application form.
Il est parfois utile d'envoyer un e-mail résumant les résultats de chaque envoi de formulaire. Bien que cela ne soit pas requis dans le cas des sondages, nous l'utiliserons pour le formulaire d'adhésion.
[EmailSettings] # Matches class id or identifier to information collection type # SendEmailList[poll]=disabled SendEmailList[membership_application_form]=enabled
[DisplaySettings] block / Le bloc [DisplaySettings]
The DisplayList setting specifies the page that should be loaded after the form is submitted. There are three main options:
Le paramètre DisplayList indique la page devant être chargée après l'envoie du formulaire. Il existe trois options principales:
-
Result – Displays a "result" template (such as a poll result or a confirmation page), typically located in [design_extension]/templates/content/collectedinfo/. This is the option we will choose for our membership application form.
Result : affiche un template de résultat (à l'instar de la page de résultat d'un sondage ou d'une page de confirmation), bien souvent placé dans [design_extension]/templates/content/collectedinfo/. C'est l'option que nous choisirons pour notre formulaire.
-
URL – Load a specific URL.
URL : charge un URI spécifique.
-
Node – Redirect back to the original content node. For example, a user filling in a form would be redirected back to the page containing the blank form. In this case, you can configure the form template to display some confirmation text above the blank form to acknowledge the submission.
Node : redirige l'utilisateur vers le nœud de contenu original. Par exemple, un utilisateur remplissant un formulaire sera redirigé vers la page affichant le formulaire vide. Dans ce cas, vous pouvez configurer le template de formulaire afin qu'il affiche un texte de confirmation au-dessus du formulaire vide et pour valider l'envoi.
[DisplaySettings] # result - Display IC result, for instance poll result or your form data # redirect - Redirect to a specific url # node - Redirect back to content node # Matches class id or identifier to information collection type #DisplayList[poll]=result DisplayList[membership_application_form]=result
[CollectionSettings] block / Le bloc [CollectionSettings]
Some forms need to be available to anonymous users. This is determined by the setting below.
Pour les formulaires devant être accessibles aux utilisateurs anonymes, utilisez le paramètre suivant:
[CollectionSettings] # if enabled then information from anonymous users can be collected # CollectAnonymousData=enabled # Same as CollectAnonymousData but is a list of IC types and # their override settings, if specified it will override default setting CollectAnonymousDataList[membership_application_form]=enabled
The CollectionUserData setting specifies how to handle users submitting a form multiple times, and is explained well in the comments to the setting.
Le paramètre CollectionUserData indique comment gérer les envois multiples des utilisateurs. Le fonctionnement de ce paramètre est clairement expliqué en commentaire:
# How information collection is handled in terms of user identification # # multiple - each user can submit multiple data / Chaque utilisateur peut envoyer plusieurs formulaires # unique - one set of data per user, if already exists give a warning / un seul envoi par utilisateur et message d'erreur si déjà envoyé # overwrite - one set of data per user but new entry overwrites old one / un seul envoi par utilisateur mais chaque envoi écrase le précédent CollectionUserData=multiple # Matches class id or identifier to information collection type #CollectionUserDataList[feedback]=multiple CollectionUserDataList[membership_application_form]=multiple
Making the form visible in the site’s menus / Rendre le formulaire visible dans les menus du site
eZ Publish does not automatically include objects of a new class in the default top or left site menus. For example, the top menu displays the objects that are directly below the top-level node of the Content branch, but only for the classes specified in menu.ini. Similarly, the left menu displays the objects that are directly below the second-level node that is currently being viewed, but also only for the classes specified in menu.ini. The new Membership Application Form class needs an entry in the relevant menu.ini file.
eZ Publish n'inclut pas automatiquement les objets d'une nouvelle classe dans le top menu ou dans le menu gauche. Le top menu n'affiche, par exemple, les objets placés directement sous le noeud de plus haut niveau de la branche Contenus que si les noms des classes sont spécifiés dans le fichier menu.ini. De la même manière, le menu gauche n'affiche les objets placés sous le noeud de second niveau du noeud actuellement affiché que si les noms des classes sont spécifiés dans ce même fichier menu.ini. Le nom de la nouvelle classe Membership Application Form doit donc être porté dans le fichier menu.ini.append.php
This example uses the Website Interface extension, so either of these settings override files can be edited:
Dans notre exemple on utilise l'extension Interface Website. Il est donc nécessaire d'éditer l'un ou l'autre de ces deux fichiers:
/extension/ezwebin/settings/menu.ini.append.php
OU
/settings/override/menu.ini.append.php
The entries added are shown below.
Les entrées/lignes ajouées sont mises en évidence par l'image suivante:
menu.ini settings / Paramètres du fichier menu.ini.append.php
This may not be necessary for all forms if you do not need them to be visible in the top or left menus (for example, if you are just going to link to the form in the body of an article). In our case, we have added the appropriate entries to both the TopIdentifierList setting (objects of these classes are shown in the flat_top menu template at extension/ezwebin/design/ezwebin/templates/menu/flat_top.tpl), and the LeftIdentifiersList setting (objects of these classes are shown in the flat_left menu template at extension/ezwebin/design/ezwebin/templates/menu/flat_left.tpl).
Ceci peut ne pas s'avérer nécessaire pour tous les formulaires si vous ne souhaitez pas qu'ils soient visibles dans le top menu ou le menu gauche (par exemple si vous faites juste un lien vers le formulaire dans le corps d'un article). Dans notre cas, nous avons ajouté les entrées appropriées pour les deux menus (les objets de cette classe seront donc présents dans les menus flat_top - extension/ezwebin/design/ezwebin/templates/menu/flat_top.tpl - et flat_left - extension/ezwebin/design/ezwebin/templates/menu/flat_left.tpl).
Menu areas / Emplacement des menus de l'interface publique du site
Form view template INI settings / Paramètres INI du template de vue du formulaire
Without an override template, eZ Publish will use the /node/view/full.tpl template to display the form, but that template does not include the elements required to display and process the form properly.
Sans surcharge de template, eZ Publish utilisera le template /node/view/full.tpl pour afficher le formulaire et n'inclura donc pas les éléments requis pour afficher et traiter correctement ce dernier.
To point eZ Publish to the correct template (which we will create next), edit the override.ini.append.php file for each siteaccess, such as the “eng” siteaccess:
Pour que eZ Publish pointe vers le bon template (qui sera créé ultérieurement), éditez le fichier override.ini.append.php de chaque siteaccess, comme, par exemple, pour le siteaccess eng:
/settings/siteaccess/eng/override.ini.append.php
Add the following entry to the override file:
Et ajoutez l'entrée suivante:
[full_membership_application_form] Source=node/view/full.tpl MatchFile=full/membership_application_form.tpl Subdir=templates Match[class_identifier]=membership_application_form
Table des matières
- eZ Publish : Comment créer des formulaires avec eZ Publish
- Creating a new form class -- Créer une nouvelle classe «formulaire»
- Form configuration settings -- Paramètres de configuration du formulaire
- Form template creation and modification -- Création et modification des templates du formulaire
- Creating the form object -- Créer l'objet formulaire
- Accessing collected information -- Accéder aux informations collectées
- Summary and resources -- Résumé et ressources














