riverphot Posted November 27, 2019 Share Posted November 27, 2019 (edited) Bonjour, je souhaiterais ajouter un bloc de texte sur la page de récapitulatif Panier. Ce texte ne devrait s'afficher que si un produit présent dans mon panier contient une caractéristique. Pour simplifier je n'utilise qu'une seule caractéristique produit, du coup il y a ou il n'y a pas de caractéristique sur mes produits. A votre avis, cela est il faisable ? En vous remerciant. Edited November 28, 2019 by riverphot (see edit history) Link to comment Share on other sites More sharing options...
Support Digital Posted November 28, 2019 Share Posted November 28, 2019 Salut riverphot, Tu es sur la dernière version ? Link to comment Share on other sites More sharing options...
riverphot Posted November 28, 2019 Author Share Posted November 28, 2019 Bonjour, Oui je suis sur la 1.7. Link to comment Share on other sites More sharing options...
Support Digital Posted November 28, 2019 Share Posted November 28, 2019 Et ce bloc de texte que tu dois rajouter, il doit s'afficher en face de chaque produit ou seulement une seule fois si au moins un de tes produits possède cette caractéristique ? Link to comment Share on other sites More sharing options...
Support Digital Posted November 28, 2019 Share Posted November 28, 2019 Si ce n'est qu'une seule fois, tu peux rajouter quelque chose qui ressemble à ça dans ton fichier templates/checkout/cart.tpl : {foreach from=$cart.products item=product} {if !empty($product.attributes)} {l s='Your text' d='Shop.Theme.Checkout'} {break} {/if} {/foreach} Pour chaque produit du panier, s'il existe au moins une caractéristique sur le produit on affiche le texte. Le break permet de clore la boucle. Link to comment Share on other sites More sharing options...
riverphot Posted November 28, 2019 Author Share Posted November 28, 2019 Super ça marche. Merci beaucoup. J'ai juste modifié $product.attributes par $product.features (pour les caractéristiques). Mais du coup je comprend mieux comment ça marche. Je vais essayer d'aller plus loin en stipulant le nom de la caractéristique concernée. Je mets le code si je trouve Link to comment Share on other sites More sharing options...
Support Digital Posted November 28, 2019 Share Posted November 28, 2019 Oui bien vu, c'est top. Super - Dis moi si tu galères à trouver Link to comment Share on other sites More sharing options...
riverphot Posted November 28, 2019 Author Share Posted November 28, 2019 J'ai essayé comme ça pour spécifier le nom de ma caractéristique mais il ne reconnait pas la variable name. J'ai encore pas mal de progrès à faire. Mais encore une fois merci, ton aide à été très précieuse. {foreach from=$cart.products item=product} {if !empty($product.features)} {foreach $product.features as $feature feature=name} {if ($feature.name=="NomCaractéristique")} {l s="Mon texte"} {/if} {/foreach} {break} {/if} {/foreach} Link to comment Share on other sites More sharing options...
Support Digital Posted November 28, 2019 Share Posted November 28, 2019 (edited) Essaie comme ça : {foreach from=$cart.products item=product} {if !empty($product.features)} {foreach $product.features item=feature} ... {/foreach} {break} {/if} {/foreach} Item c'est la valeur que prends ton itération (qui correspond à la variable que tu as après "as" dans un foreach classique) Edited November 28, 2019 by Support Digital (see edit history) Link to comment Share on other sites More sharing options...
riverphot Posted November 28, 2019 Author Share Posted November 28, 2019 Ca me génère une erreur disant qu'il ne connait pas name. Mais grâce à toi et à un petit tour dans la base de données j'ai compris. En fait la table product.features n'intègre pas le nom (qui est dans une table de traduction). Donc je fais avec l'ID, ce qui au passage est plus propre et plus pérenne. Je mets le code si ça peut aussi servir à d'autres. En tout cas merci, ça m'aide vraiment et surtout je commence à un peu mieux m'y retrouver dans la construction du code de prestashop Voici donc le code final : {foreach from=$cart.products item=product} {if !empty($product.features)} {foreach $product.features item=feature} {if ($feature.id_feature=="3")} {l s="MonTexte" d="Shop.Theme.Checkout"} {/if} {/foreach} {break} {/if} {/foreach} 1 Link to comment Share on other sites More sharing options...
Support Digital Posted November 28, 2019 Share Posted November 28, 2019 Parfait, c'est bien ça. Tu dois pouvoir mettre le post en "résolu", ça aidera certainement des gens. Link to comment Share on other sites More sharing options...
Andriano Posted January 4, 2020 Share Posted January 4, 2020 Il faut utiliser le mode {debug} pour voir les valeurs de sortie de chaque variable prestashop. 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