Mao Sait Tout Posted October 3, 2011 Share Posted October 3, 2011 (edited) Bonjour, Je viens d'un autre shopping cart qui fonctionne, comme PrestaShop, avec Smarty. Le passage à PrestaShop et à Smarty 3 me désoriente. Afin (d'essayer) de faire fonctionner du PHP dans les TPL Smarty, et comme précisé dans ce post : http://www.prestasho...896#entry507896 J'ai changé le fichier /prestashop/tools/smarty/sysplugins/smarty_security.php : public $allow_php_tag = false; Par : public $allow_php_tag = true; Et j'ai changé le fichier /prestashop/tools/smarty/Smarty.class.php : public $allow_php_tag = false; Par : public $allow_php_tag = true; ======================== Voici mon problème, pour gérer de façon très basique la loi Chatel, j'ai un code qui fonctionnait parfaitement avant, mais je n'arrive pas à le faire tourner sous PrestaShop + Smarty 3. En voici le début : <div class="chatel"> {assign var="livraison" value=$date|date_format:"%a"} {assign var="h" value=$date|date_format:"%H"} {if ($livraison=="Lun" || $livraison=="Mar" || $livraison=="Mer" || $livraison=="Jeu") && $h<"13"} {"+2 days"|date_format:"%A %e %B %Y"} {/if} {if ($livraison == "Lun" || $livraison=="Mar" || $livraison=="Mer") && $h>="13"} {"+3 days"|date_format:"%A %e %B %Y"} {/if} Pourriez-vous m'aider ? Merci de votre aide, Mao Sait (pas) Tout Edited May 14, 2012 by Mao Sait Tout (see edit history) Link to comment Share on other sites More sharing options...
coeos.pro Posted October 3, 2011 Share Posted October 3, 2011 ne faudrait il pas remplacer $h=>"13" par : $h>=13 sans les " ? ça ne marche pas : pas de message du tout ? un message d'erreur ? page blanche ? Link to comment Share on other sites More sharing options...
Mao Sait Tout Posted October 4, 2011 Author Share Posted October 4, 2011 Merci de ta réponse, Ceci fonctionne : {"+2 days"|date_format:"%A %e %B %Y"} Le reste, non. Link to comment Share on other sites More sharing options...
coeos.pro Posted October 4, 2011 Share Posted October 4, 2011 essaye de mettre {"+2 days"|date_format:"%A %e %B %Y"} h={$h} pour voir ce qu'il t'affiche, des fois qu'ils soit en 12H au lieu de 24H tu n'aura jamais la 2ème condition. Link to comment Share on other sites More sharing options...
Mao Sait Tout Posted October 4, 2011 Author Share Posted October 4, 2011 Merci de ton aide ! Alors, ce code : {assign var="livraison" value=$date|date_format:"%a"} {assign var="h" value=$date|date_format:"%H"} {"+2 days"|date_format:"%A %e %B %Y"} h={$h} Affiche : Thursday 6 October 2011 h= ****** Ce code seul : {"+2 days"|date_format:"%A %e %B %Y"} Affiche : Thursday 6 October 2011 Merci Link to comment Share on other sites More sharing options...
coeos.pro Posted October 4, 2011 Share Posted October 4, 2011 donc h n'a pas de valeur... donc ce n'est peut être pas %H donc il faut lire la doc : http://www.smarty.ne...t.tpl#id2937775 Changez {assign var="h" value=$date|date_format:"%H"} par {assign var="h" value=$date} et dans le if, au lieu de ...&& $h>="13"} testez : ...&& $h|date_format:"%H" >= 13} Link to comment Share on other sites More sharing options...
Mao Sait Tout Posted October 5, 2011 Author Share Posted October 5, 2011 Ce code : {assign var="h" value=$date} {"+2 days"|date_format:"%A %e %B %Y"} h={$h} Affiche : Friday 7 October 2011 h= ***** Ce code pris dans l'exemple que vous citez : {$yesterday|date_format:"%A, %B %e, %Y"} N'affiche rien. Link to comment Share on other sites More sharing options...
Mao Sait Tout Posted May 14, 2012 Author Share Posted May 14, 2012 Thread résolu, réponse trouvée par http://www.magavenue.com Link to comment Share on other sites More sharing options...
JCP Posted May 5, 2013 Share Posted May 5, 2013 [Prestashop] Comment ajouter du code PHP dans un .tpl Dans le fichier tpl on place le code php entre les balises {php}{/php}. mais ces balises ne sont plus reconnues depuis le passage de la version 2 de smarty à la version 3. L’utilisation de PHP au sein des templates est en effet fortement déconseillé. Néanmoins, il est possible de retrouver cette possibilité. Il faut ajouter l’utilisation du fichier de classes « SmartyBC.class.php » Ce fichier est absent de la version de smarty livrée avec Prestashop 4.1.9 Télécharger la dernière version à l’adresse : http://www.smarty.net/download. Décompresser et copier le fichier « SmartyBC.class.php » dans le dossier /tools/smarty Modifier le fichier ps\config\smarty.config.inc.php de la façon suivante : // A la deuxième ligne de code, modifier (respecter la casse) require_once(_PS_SMARTY_DIR_.'Smarty.class.php'); en : require_once(_PS_SMARTY_DIR_.'SmartyBC.class.php'); // A la quatrième ligne de code, modifier $smarty = new Smarty(); en : $smarty = new SmartyBC(); Vider le cache smarty la balise {php} devrait être reconnue dans le .tpl Link to comment Share on other sites More sharing options...
coeos.pro Posted May 5, 2013 Share Posted May 5, 2013 L’utilisation de PHP au sein des templates est en effet fortement déconseillé. oui, c'est exactement ça. D'une part ça va à l'encontre de l’intérêt de l'utilisation du smarty et d'autre part c'est une faille potentielle de sécurité. 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