Jump to content

literal en tête de liste de produits


Recommended Posts

Bonjour,

J'utilise prestashop 1.3.7, j'ai developpé un theme propre a ma société.

Dans ce theme, la partie product-list est adaptée pour prendre afficher et alerter sur le conditionnement des produits.

J'ai donc modifié le lien d'ajout au panier en formulaire pour pouvoir y rajouter la quantité de produits à commander.
Mon but est de rajouter un script JS qui effectue une validation en affichant une alerte si le produit n'est pas vendu a l'unité.

Mon product-list.tpl ressemble a ceci :

>
<!--
Historique
-->
   {literal}  
   [removed]

   //<![CDATA[
   function controle_conditionnement(val) {
   if(val > 1) {
       alert("Vous achetez un conditionnement de "+val+" articles.");
       }
   }
   //]]>
   [removed]
   {/literal}  

{if isset($products)}
   <!-- Products list -->
</pre>
<ul>
   {foreach from=$products item=product name=products}
...
<!-- add to cart form-->
                   <form id="buy_block" action="{$base_dir}cart.php" method="post">
...



Donc le formulaire fonctionne, l'alerte si l'article n'est pas vendu a l'unité aussi MAIS en début de ma liste de produit j'ai {literal} qui apparait.

Quelqu'un a une idée ?

Link to comment
Share on other sites

Bojour, il y a peut être un autre {literal} quelque part, sinon essayez avec:

<!--
Historique
-->

   [removed]

   //<![CDATA[
   function controle_conditionnement(val) {ldelim}
   if(val > 1)  {ldelim}
       alert("Vous achetez un conditionnement de "+val+" articles.");
      {rdelim}
   {rdelim}
   //]]>
   [removed]


{if isset($products)}

Link to comment
Share on other sites

Merci pour ta réponse.

J'ai déja essayé, sans le {literal} {/literal} le code JS bloque l'affichage de la page, j'ai une page blanche des l'appel du product-list.tpl

Avec literal ma page s'affiche correctement, mon javascript fonctionne mais {literal} s'affiche sur le rendu du site.

Serait il possible qu'un module mal codé utilisant la balise ouvrante {literal} sans la fermante produise se genre de phénomène ?
Les balises {literal} étant normalement interpretées par Smarty, elles n'apparaissent que dans le tpl, et probablement pas dans le cache smarty non ? comment voir si un literal précède le mien ?

Link to comment
Share on other sites

Les nouvelles :

En effet, {ldelim} et {rdelim} pour remplacer les caractères "{}" permet d'éviter d'utiliser {literal}{/literal}.

Cependant mon problème n'est pas la.

Même avec un autre code des que dans mon tpl j'ai {literal}{/literal} le premier {literal} est affiché dans le fichier compilé par smarty.

Si je procede comme suis :

     {/literal}
{literal}

   [removed]
   function controle_conditionnement(val) {
   if(val > 1) {
       alert("Vous achetez un conditionnement de "+val+" articles.");
       }
   }
   [removed]
{/literal}

{if isset($products)}
   <!-- Products list -->



Plus aucun problème, il semble donc que j'aie dans l'ordre de compilation smarty un module ou composant ps qui n'a pas sa balise {/literal}

Quelqu'un aurait une idée qui permettrait de retracer d'où ca peut venir ?

(je suppose que dans le fichier compilé par smarty le {literal} seul n'apparaitra pas).

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...