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 :
- Titre (type : ligne de texte)
- Nom type (ligne de texte (Il faut cocher « Collecteur d’information »))
- Email type (Courriel (« Collecteur d’information »))
- 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
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 »
Vous aurez quelques choses telles :
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».
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
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}
Si vous remplissez le formulaire, après un clic sur « envoyer », vous aurez l’affichage suivant :
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.
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