Ornicar Posted September 29, 2014 Share Posted September 29, 2014 (edited) Bonjour tout le monde ! J'aimerai savoir s'il est possible d'utiliser smarty dans un hook prestashop sans initialiser de: global $smarty Je demande cela car le validateur de module Prestashop déteste les variables globales et que j'ai besoin de smarty pour assigner une variable à mon template. Je prends toutes les solutions qui peuvent fonctionner de la version 1.3 à la version 1.6 Merci d'avance de vos réponses ! Edited September 30, 2014 by Ornicar (see edit history) 1 Link to comment Share on other sites More sharing options...
agenceweb74 Posted September 30, 2014 Share Posted September 30, 2014 Salut Ornicar, A partir de la 1.5 tu peux utiliser la propriété $this->smarty de la classe Module. Avant la 1.5, et fonctionnant dans toutes les versions puisque c'est ton souci, tu peux peut-être réinstancier un objet smarty (tout dépend de si tu as besoin ou non du contexte ou bien si tu charges de nouvelles valeurs). Le mieux sera de faire un accesseur à la variable smarty, qui en fonction de la version pourra réutiliser la propriété smarty et sa configuration pour rester homogène avec le comportement de l'installation (1.5 et supérieur), et en version inférieur réinstancier un objet smarty avec son paramétrage, tel que dans le fichier config/smarty.config.inc.php par ex: function getSmarty() $smarty = new Smarty(); $smarty->template_dir = _PS_THEME_DIR_.'tpl'; $smarty->compile_dir = _PS_SMARTY_DIR_.'compile'; $smarty->cache_dir = _PS_SMARTY_DIR_.'cache'; $smarty->config_dir = _PS_SMARTY_DIR_.'configs'; $smarty->caching = false; $smarty->force_compile = true; // to pass "false" when put into production $smarty->compile_check = false; return $smarty; } 1 Link to comment Share on other sites More sharing options...
Ornicar Posted September 30, 2014 Author Share Posted September 30, 2014 Bonjour, Je vais suivre votre démarche et vous tenir au courant des résultats. Merci pour votre aide 1 Link to comment Share on other sites More sharing options...
Ornicar Posted September 30, 2014 Author Share Posted September 30, 2014 Merci pour tout, Votre solution marche mais elle prend un peu de temps à mettre en place. Il y a en fait plus simple à faire, il suffit de déclarer $GLOBALS['smarty'] et de l'utiliser pour que tout fonctionne. De plus cela ne pose pas de soucis pour le validateur Prestashop ! Link to comment Share on other sites More sharing options...
agenceweb74 Posted September 30, 2014 Share Posted September 30, 2014 (edited) Il y a en fait plus simple à faire, il suffit de déclarer $GLOBALS['smarty'] et de l'utiliser pour que tout fonctionne. De plus cela ne pose pas de soucis pour le validateur Prestashop ! Gardez la sous le coude si le validateur devient subitement plus restrictif ! Edited September 30, 2014 by agenceweb74 (see edit history) 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now