Gérer les includes de templates dans les emails prestashop

Gérer les includes de templates dans les emails prestashop

Dans Prestashop 1.5.6.0, de base, il n’est pas possible de faire des inclusions de morceaux de templates dans les modèles de mails, ce qui est très vite assez lourd, surtout si vous voulez faire des modèles assez sympathiques avec une entête, un pied de page… De base, là solution serait de dupliquer ce morceau sur tous les modèles présents. A la modification d’un élément de l’entête ou du pied de page par exemple, il faut du coup reprendre tous les modèles un par un pour les éditer. Bref tout ça pour dire, pas facile !

Je vous propose donc ci-dessous une solution alternative, nous allons utiliser le moteur de Smarty pour générer le « fichier modèle complet », puis nous continuerons le traitement standard Prestashop.

classes\Mail.php – ligne 231

Cherchez la ligne suivante :

$template_html = file_get_contents($template_path.$template.'.html');

Remplacez celle-ci par :

$smarty = new Smarty();
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';
$template_html = $smarty->fetch($template_path.$template.'.html');

Maintenant, dans vos modèles de mails, il ne vous reste plus qu’à inclure les fichiers de la manière suivante :

<!--{include file='.\footer.html'}-->

Bon après je ne suis pas super fan de modifier les classes du cœur de Prestashop mais bon, des fois il n’y a pas le choix 🙂

Testé et approuvé sur Prestashop 1.5.6.0

1Commentaire
  • Lionel Robuchon
    Publié à 12:29h, 15 mars Répondre

    Hello,

    Vous avez oublié un $ 😉

    Pour PS 1.6 il faut aller ligne 258 et remplacer la ligne par :

    $smarty = new Smarty();
    $smarty->left_delimiter = ‘right_delimiter = ‘}–>’;
    $template_html = $smarty->fetch($template_path.$iso_template.’.html’);

    Bonne continuation,

Écrire un commentaire