Salut @sebastienlille,
@arthurvendeur a bien résumé la situation. Ton code injecte bien le contenu HTML via Smarty, mais un 'vrai' pop-up modal avec toutes les fonctionnalités attendues (overlay, animation, gestion des cookies pour ne pas réapparaître trop souvent, ciblage des pages, etc.) demande une couche JavaScript et CSS significative. Le simple fait de retourner le template ne suffit pas, il faut ensuite 'activer' ce contenu en tant que modal via du JS.
Pour une solution propre et plus robuste, voici une approche où tu pourrais charger tes assets (JS/CSS) et initialiser une logique côté client pour ta modale. Cependant, gérer la persistance via cookies, les différentes conditions d'affichage, et l'édition facile du contenu sans toucher au code deviendrait vite lourd avec cette seule méthode.
Voici un exemple de comment tu pourrais charger un fichier JS spécifique à ton popup, où la logique modal serait gérée (pour PS 1.7.6.5):
public function hookDisplayBeforeBodyClosingTag($params)
{
// On ajoute le fichier JS qui gérera l'affichage modal et les cookies
$this->context->controller->registerJavascript(
'modules-mypopupmodule-popup',
'modules/' . $this->name . '/views/js/popup_handler.js',
['position' => 'bottom', 'priority' => 150]
);
$this->context->smarty->assign([
'popup_message' => $this->l('Profitez de 10% de réduction sur votre première commande !'),
'popup_id' => 'my-custom-popup',
'cookie_name' => 'popup_shown',
'cookie_duration' => 7, // jours
]);
return $this->display(__FILE__, 'views/templates/hook/my_basic_popup.tpl');
}
Dans ton fichier popup_handler.js (situé dans modules/mypopupmodule/views/js/), tu devrais avoir toute la logique JavaScript pour transformer ton div en une vraie modale (ajout d'un overlay, gestion de l'affichage/masquage, et surtout la lecture/écriture des cookies). Le problème est que cela reste une solution "maison" qui demande du développement.
Pour éviter de réinventer la roue et avoir une solution clé en main, avec une interface d'administration pour gérer facilement tous les paramètres (contenu, position, fréquence par cookie, ciblage), je te recommande de regarder un module dédié comme PopUp Gratuit. Ces modules sont conçus spécifiquement pour ça, ils gèrent les mises à jour, la compatibilité, et te donnent un contrôle total sans coder.