web-dev-qa-db-fra.com

Charger un modèle HTML et envoyer un email

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?

1
user101289

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.

1
Anibal