Lors d’un récent projet sur Prestashop 1.5.6.2. j’ai été amenée à devoir utiliser les balises {php}{/php} dans un fichier de template et ça m’a renvoyé une erreur. Voici une astuce pour outrepasser cette erreur.

L’utilisation des balises {php}{/php} dans les fichiers .tpl à été supprimé depuis la version 1.5. de Prestashop.

Pour forcer leur utilisation, il faut modifier le fichier config/smarty.config.inc.php :

Aller aux lignes 29 à 33 :

define('_PS_SMARTY_DIR_', _PS_TOOL_DIR_.'smarty/'); require_once(_PS_SMARTY_DIR_.'Smarty.class.php');
global $smarty; $smarty = new Smarty(); $smarty->setCompileDir(_PS_CACHE_DIR_.'smarty/compile');

Et changer les par :

define('_PS_SMARTY_DIR_', _PS_TOOL_DIR_.'smarty/'); require_once(_PS_SMARTY_DIR_.'SmartyBC.class.php');
global $smarty; $smarty = new SmartyBC(); $smarty->setCompileDir(_PS_CACHE_DIR_.'smarty/compile');

…en gros, utiliser SmartyBC.class.php au lieu de Smarty.class.php

 

(ATTENTION : utiliser les balises {php}{/php} dans les fichiers de template est déprécié par Prestashop !)