J'aimerais envoyer un courrier électronique HTML formaté à partir d'un composant personnalisé. Je pensais pouvoir créer un fichier tmpl
quelque part comme components/mycomponent/views/emailer/tmpl/default_email.php
puis dans la vue (à components/mycomponent/views/emailer/view.email.php
) Je serais capable de rendre le default_email
Affichez les données extraites du modèle, puis envoyez-les.
Il semble que la méthode "normale" de Joomla consiste à faire un sprintf
avec une chaîne de langue pour générer le courrier électronique.
N'y a-t-il aucun moyen de rendre le fichier de modèle dans la vue avant d'envoyer le courrier électronique?
Oui, il existe plusieurs façons de rendre en interne une page à partir d'une vue.
En gros, vous appelez la vue et capturez le résultat dans une variable.
Par exemple, dans FoF, vous pouvez le faire de cette manière:
ob_start();
F0FDispatcher::getTmpInstance(
'com_mycomponent',
'theview',
$config
)->dispatch();
$output = ob_get_contents();
ob_end_clean();
Vous pouvez également appeler l'URL avec une connexion cURL, mais cette opération est plus lente car vous devez ouvrir une nouvelle connexion réseau pour afficher la page.