Modèles d'email Joomla 5 - comment ajouter des variables via le plugin
- Link originale: https://magazine.joomla.org/all-issues/february-2025/joomla-5-email-templates-how-to-add-variables-via-plugin
- Tradotto da:: Pietro Strada
Dans Joomla 5, des modèles de courrier électronique personnalisables ont fait leur entrée, pour les composants principaux et tiers. Ils ne peuvent pas (encore) être ajoutés seuls, ils sont ajoutés lors de l'installation.
Vous pouvez modifier les modèles d'email en cliquant sur Système - Modèles - Modèles d'email dans le menu de gauche de votre panneau d'administration. Depuis Joomla 5.2, vous pouvez utiliser le format HTML pour les modèles de courrier électronique. Lorsque vous modifiez le modèle, vous pouvez voir que les variables comme {USERNAME} ou {SITENAME} sont utilisés dans son texte. Mais que se passe-t-il si nous devons ajouter nos propres variables au modèle de courrier électronique?
Une description détaillée de cette fonctionnalité nécessitera un article détaillé séparé, mais nous vous donnerons une idée générale des paramètres du modèle de courrier électronique.

Nous devrions aller aux paramètres de modèle d'email (le bouton d'options de composant dans le coin supérieur droit).

Et puis nous pouvons sélectionner le format d'email texte ou HTML. Ensuite, les paramètres de mise en page pour les modèles de courrier électronique Joomla deviennent disponibles. Ces paramètres globaux peuvent être redéfinis dans chaque modèle d'email spécifique. Ainsi, vous pouvez spécifier vos propres paramètres de mise en page et de logo pour chacun des modèles de courrier électronique.

Pour les développeurs: Comment puis-je ajouter mes propres variables pour les modèles de courrier électronique Joomla?
Nous voyons différents codes courts pour différents types d'emails: {NAME}, {SITENAME}, {SITEURL}, et ainsi de suite sont utilisés dans le texte des modèles de courrier électronique Joomla. Et si nous devions ajouter nos propres variables au modèle d'e-mail?

Pour ce faire, vous devez écrire un plugin simple (voir docuentation officielle pour les développeurs). Le développeur bénéficiera de 2 triggers pour les plugins: surMailBeforeTagsRendering et surMailBeforeRendering.
Déclencheur de plugin surMailBeforeRendering dans Joomla
surMailBeforeRendering - Il s'agit d'un déclencheur qui vous permet d'ajouter vos propres shortcodes pour le remplacement des chaînes dans le plugin. Vous devez envoyer un tableau du formulaire comme [ variable_name => variable_value ].
Dans le panneau d'administration, vous devez ajouter vos variables avec des crochets bouclés: {nom_variable} sera remplacé par variable_valeur.

Le $événement argument du plugin est une instance de la AvantRenderingMailTemplateEvent classe, qui a, entre autres, 2 méthodes: getTemplate() (obtenir un objet mailer où vous pouvez ajouter vos données) et getTemplateId() (obtenir l'identifiant de modèle d'un e-mail comme com_users.registration.admin.new_notification), par lequel nous déterminons si c'est le bon modèle de courrier électronique pour nous ou non. Similaire au contexte dans les plugins de contenu.

En outre, une propriété de classe utile pour transférer des données du plugin vers la mise en page de la lettre pour le rendu est $layoutTemplateData. C'est un tableau associatif.
<?php
// Obtenir l'expéditeur actuel
$mailTemplate = $event->getTemplate();
$données = [
'nom_variable' => 'valeur_variable'
// depuis Joomla 4 pour tous les types d'emails. 2ème argument - $plain - format texte brut ];
$mailTemplate->addTemplateData($data, false);
// depuis Joomla 5.2 - pour les e-mails HTML

// Un exemple du noyau de Joomla