Aujourd’hui  je vais vous présenter la notion  des collecteurs d’information  qui sont très utiles par exemple lors de la création de formulaire de contact, ainsi d’autres fonctionnalités.

Dans un premier temps nous allons créer notre classe « Contact » avec les attributs suivants :

  1. Titre  (type : ligne de texte)
  2. Nom type  (ligne de texte  (Il faut cocher  « Collecteur d’information »))
  3. Email type (Courriel (« Collecteur  d’information »))
  4. Message type (Bloc de texte (« Collecteur d’information »))

Bien sur il ne faut pas oublier la case « Obligatoire », si ceci est nécessaire.  Ensuite sur votre arborescence, vous allez créer un objet de cette classe

contact

Si vous avez remarqué, nous n’avons remplis que le champ Titre qui sera affiché sur le front end, les autres champs, c’est aux internautes des les remplir. Si vous avez créé votre objet « nous-contacter »  sur le même niveau  que les autres rubriques,  alors vous allez le voir automatiquement  sur le menu (bien sur si vous avez fait une boucle)

Sinon un simple fetch pour récupérer la node adéquate pour faire un affichage.

Si  tout est bon, après un clic sur le lien « contact »

 contact3

Vous aurez quelques choses telles :

contact2

Alors, nous avons un  affichage non surchargé de la vue full de la node « contact ». Comme déjà mentionné dans le tutoriel de dynamisation , il faut faire un surcharge node.

Nous allons rappeler de ce qu’il faut faire.

Sur votre fichier de surcharge  «/settings/siteaccess/plain_site/override.ini.append.php».

contact_surcharge

Ensuite  sur le fichier « contact.tpl ».  Vous devez mettre votre html selon vos besoins. Il faut garder les noms des champs de button ainsi les trois champs cachés

formulaire_contact

Nous avons surchargé notre vue, le code sélectionné sera utilisé pour la gestion de contrôle de saisie. Dans cette vue nous avons la variable $node, cette variable est définie automatiquement par le système et elle contient un objet ezcontentobjecttreenode, qui représente le node demandé. Cette variable permet l’extraction et l’affichage de diverses informations sur le node et l’objet qu’il encapsule.

Voici le code pour la gestion de contrôle

{include name=Validation uri='design:content/collectedinfo_validation.tpl' class='message-warning' validation=$validation collection_attributes=$collection_attributes}

contact2

Si vous remplissez le formulaire, après un clic sur « envoyer », vous aurez l’affichage suivant :

contact4

Alors, cet affichage dépend du template  « design/standard/templates/content/collectedinfo/form.tpl».  Si vous voulez faire votre propre affiche, vous n’allez qu’à faire un « surcharge system » de cette vue, c’est-à-dire copier le même fichier (avec le nouveau html/style) sur votre extension avec le même chemin. Donc  le nouveau chemin est : « extension/ezsite/design/ezsite/templates/content/collectedinfo/form.tpl »

Ces informations qu’on vient de saisir, on peut les lister dans le back_office. Pour cela Onglet colonne gauche « Information recueillie », vous allez voir la liste des objets ayant des informations collectées

Aucun nouvel objet n’est créé dans l’arborescence de noeud de contenu. Au lieu de cela, une nouvelle entrée est présente dans la partie « Information recueillie » de l’onglet  « Administration », de l’interface d’administration.

contact_back

Noter  que ce n’est pas tous les datatypes ont l’option collecteur d’information.

Voilà à ce stade nous allons voir un exemple de formulaire de contact. Tout en exploitant la notion des collecteurs d’informations. J’espère que cet exemple sera utile pour les personnes qui débutent avec le CMS ezpublish