29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Dossiers techniques / eZ Publish : Comment créer des formulaires avec eZ Publish / Form configuration settings -- Paramètres de configuration du formulaire





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : Comment créer des formulaires avec eZ Publish

Table des matières

  1. eZ Publish : Comment créer des formulaires avec eZ Publish
  2. Creating a new form class -- Créer une nouvelle classe «formulaire»
  3. Form configuration settings -- Paramètres de configuration du formulaire
  4. Form template creation and modification -- Création et modification des templates du formulaire
  5. Creating the form object -- Créer l'objet formulaire
  6. Accessing collected information -- Accéder aux informations collectées
  7. 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

19 Décembre 2007 8:44

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

  1. eZ Publish : Comment créer des formulaires avec eZ Publish
  2. Creating a new form class -- Créer une nouvelle classe «formulaire»
  3. Form configuration settings -- Paramètres de configuration du formulaire
  4. Form template creation and modification -- Création et modification des templates du formulaire
  5. Creating the form object -- Créer l'objet formulaire
  6. Accessing collected information -- Accéder aux informations collectées
  7. Summary and resources -- Résumé et ressources

Commentaires

  • @LUCAS

    Bonjour Lucas,

    Je te propose de jeter un œil sur les templates qui gèrent les commentaires. Et tout particulièrement au code qui gère les «input». Il est fort possible que le code spécifié dans l'article ne soit plus compatible avec les nouvelles versions de eZ Publish.

    Peut-être faut-il s'inspirer de cet exemple: http://luxpopuli.fr/eZ-Publish/Trucs-amp-astuces/eZ-Publish-systeme-de-gestion-des-mails-page-Contact-I#eztoc19501_6

    Cordialement,

    Problème Submit

    Bonjour,
    Je te remercie tout d'abord de ton tutoriel , il est excellent. J'ai tout de même un problème, j'ai suivi tes indications à la lettre, mais lorsque que je clique sur le bouton ( le input de type submit) "Send Form" rien ne se passe, il reste sur la page actuelle et n'affiche pas le template resultat.

    Cordialement.
    Lucas.