EZ Publish permet de réaliser des formulaires (de contact par exemple) grâce à la collecte d'informations. Il est aussi possible de configurer ezPublish afin d'envoyer un email suite à la récupération des informations. Le template du mail envoyé se trouve dans   /design/standard/templates/content/collectedinfomail/form.tpl. Vous pouvez ainsi surcharger ce fichier en le copiant ici :  extension/mon_extension/design/mon_design/templates/content/collectedinfomail/mon_formulaire.tpl, où "mon_formulaire" est  le nom de la classe de contenu contenant le formulaire qui devra envoyer un mail.

Les paramètres du mail (destinataires, objet…) peuvent être surchargés au sein de ce template de la manière suivante :

{set-block scope=root variable=email_sender}sender@server.net{/set-block}

Voici la liste des différents paramètres modifiables de cette manière :

  • subject : sujet du mail
  • email_receiver : email du destinataire
  • email_cc_receivers : email des destinataires en copie
  • email_bcc_receivers : email des destinataires en copie cachée
  • email_sender : email de l'expéditeur
  • email_reply_to : email de réponse
  • redirect_to_node_id : node_id du nœud vers lequel effectuer une redirection après l'envoi de l'email

Le fichier collect.ini.append.php (à positionner dans les settings de votre extension) vous permettra en autre :

  • d'activer / désactiver l'envoir de mail sur un formulaire 
  • de définir l'action à effectuer suite à la soumission (redirection vers une URL, affichage des informations collectées)
  • d'autoriser un utilisateur à utiliser plusieurs fois le formulaire

Voici un exemple de configuration :


<<?php /* #?ini charset="utf-8"?
 
[InfoSettings]
# Associe l'identifier de la classe de contenu au type de collection d'information
TypeList[formulaire_contact]=formulaire_contact
TypeAttribute=collection_type
 
[EmailSettings]
# Définit que les informations collectées doivent être envoyées par email
SendEmailList[formulaire_contact]=enabled
 
[DisplaySettings]
Display=result
DisplayList[formulaire_contact]=result
 
[CollectionSettings]
# Autorise les utilisateurs anonymes à utiliser le formulaire
CollectAnonymousDataList[formulaire_contact]=enabled
 
# Autorise un utilisateur à utiliser plusieurs fois le formulaire
CollectionUserData=multiple
CollectionUserDataList[formulaire_contact]=multiple
 
*/ >?php

Dans certains cas, avec ezPublish, il est nécessaire d'utiliser un pagelout spécifique pour, par exemple, ne pas afficher l'ensemble du layout d'une page ou utiliser un style css particulier. Aussi, dans le cadre d'une requête Ajax, il n'est pas nécessaire de retourner tout le code HTML du site, seul celui généré par le template concerné est requis (d'ailleurs retourner la structure HTML complète de la page peut poser problème dans certains cas).

Pour parvenir à changer le pagelayout d'une page, il faut tout d'abord créer le pagelayout en question (specific_pagelayout.tpl dans notre exemple) dans le dossier "design" de votre extension. Ensuite, deux options sont possibles :

  1. Si vous êtes dans un module custom (développé par vos soins)

Il vous suffit d'insérer le code suivant dans le fichier PHP de votre module :

 $Result['pagelayout'] = 'design:specific_pagelayout.tpl';
  1. Si vous utilisez le module content/view du kernel : 

Vous pouvez utiliser la vue "set" du module "layout". Cette vue permet de forcer le système à utiliser un différent pagelayout de celui par défaut.
Tout d'abord, surchargez le fichier layout.ini (copiez le et renommez le en "layout.ini.apend.php") et ajouter les lignes suivantes :

# nom du layout
[specific_pagelayout]
# fichier du pagelayout
PageLayout=specific_pagelayout.tpl

Pour charger une vue full avec ce pagelayout, appellez la via une URL du type : http://monDomaine/layout/set/specific_pagelayout/content/view/full/nodeID.


Les applications sont multiples et variées, en voici quelques exemple :

  • appel Ajax
  • ouverture d'un template dans une popin/popup
  • style CSS d'impression
  • version responsive design d'une page spécifique