Bonjour,
Comme vous le savez le mécanisme utilisé pour l'expédition de mails depuis les collecteurs d'information est un peu inversé par rapport aux habitudes.
Je m'explique :
Traditionnellement, nous définissons des variables depuis le script PHP pour les insérer dans le système de template.
Mais le mécanisme inverse est possible; c'est-à-dire : définir une variable dans la template qui sera lue par le code PHP suite à l'exécution de la template.
C'est ce qui se passe pour la collecte d'information.
Comment définir les variables : destinataire, émetteur et objet
Le plus simple : l'objet
L'objet est renseigné dans le code de template et récupéré par le PHP. Il peut être unique ou éventuellement contenir des informations collectées.
1 2 3
| {set-block scope=root variable=subject}
Informations collectées par le formulaire {$collection.object.name|wash()}
{/set-block} |
Un peu moins simple : le destinataire
1/ ne rien faire...
Si vous ne faites rien de particulier dans la template de mail, eZ Publish va chercher la variable Site.ini [InformationCollectionSettings] EmailReceiver
Si cette valeur n'est pas renseignée, eZ prendra la valeur Site.ini [MailSettings] AdminEmail
2/ Préciser le destinataire en "dur" dans la template
{set-block scope=root variable=email_receiver}XXXX{/set-block}
3/ Créer un champ dans votre classe de formulaire qui contiendra l'e-mail. De cette manière, pour chaque formulaire instancié, vous pouvez avoir un destinataire différent
{set-block scope=root variable=email_receiver}{$collection.object.data_map.recipient.content}{/set-block}
Dans cet exemple notre champ (non collecteur d'information) a comme identifiant "recipient"
Plus complexe pour terminer : l'expéditeur
1/ ne rien définir dans la template
Cette fois-ci eZ Publish utilisera la valeur Site.ini [MailSettings] EmailSender
Le problème est que l'expéditeur est toujours le même et vous ne pouvez pas répondre directement à la personne qui vous a contacter via un reply.
2/ changer l'expéditeur en fonction de la collecte
Si vous avez un champ obligatoire e-mail dans votre formulaire, vous pouvez envoyer votre mail de collecte avec cet adresse comme expéditeur.
Pour ce faire :
1 2 3 4 5 6 7
|
{foreach $collection.attributes as $attribute}
{if $attribute.contentclass_attribute.identifier|eq('sender')}
{set-block scope=root variable=email_sender}{$attribute.data_text}{/set-block}
{break}
{/if}
{/foreach} |
Pour finir, sachez que vous pouvez aussi définir les valeurs email_cc_receivers et email_bcc_receivers
Partager