Mühldorfer-france Posted December 29, 2016 Share Posted December 29, 2016 Bonjour a tous, je cherche désespérément le moyen d'afficher le poids total des produits présents dans le panier dans le popup qui s'ouvre tout de suite après avoir fait "ajouter au panier".Presta 1.6.0.13Merci de votre aide. Link to comment Share on other sites More sharing options...
BeComWeb Posted December 29, 2016 Share Posted December 29, 2016 Bonjour, Cette adaptation va nécessiter de modifier au moins 2 templates (blockcart.tpl et blockcart-json.tpl) et le fichier blockcart.js (le panier fonctionnant en Ajax, chaque manipulation comme l'ajout ou la suppression de produit va demander un rafraîchissement de la valeur). Il est possible que la modification du CartController.php soit nécessaire également. Ca va donc dépendre de votre niveau en développement. 1 Link to comment Share on other sites More sharing options...
Mühldorfer-france Posted December 29, 2016 Author Share Posted December 29, 2016 Bonjour, Cette adaptation va nécessiter de modifier au moins 2 templates (blockcart.tpl et blockcart-json.tpl) et le fichier blockcart.js (le panier fonctionnant en Ajax, chaque manipulation comme l'ajout ou la suppression de produit va demander un rafraîchissement de la valeur). Il est possible que la modification du CartController.php soit nécessaire également. Ca va donc dépendre de votre niveau en développement. Merci BeComWeb, J'avais pensé deja au Bloccart.js et Blockcart.tpl mais pas l'autre que faudrait-il ajouter pour que cela fonctionne? j'avais pensé à un truc dans ce style: $('#layer_cart_product_weight').text(''); Link to comment Share on other sites More sharing options...
BeComWeb Posted December 29, 2016 Share Posted December 29, 2016 Oups pardon, j'ai parlé un peu vite. Sur la capture c'est la pop-up qui s'affiche après l'ajout au panier, pas le bloc panier qui se trouve dans le header. L'idée est la même mais les fichiers sont peut-être différents. Je regarde ça plus en détails cet après-midi. 1 Link to comment Share on other sites More sharing options...
Mühldorfer-france Posted December 29, 2016 Author Share Posted December 29, 2016 Link to comment Share on other sites More sharing options...
Mühldorfer-france Posted January 3, 2017 Author Share Posted January 3, 2017 un petit up Link to comment Share on other sites More sharing options...
BeComWeb Posted January 3, 2017 Share Posted January 3, 2017 Désolé j'avais zappé et les quelques jours de vacances ont suffi pour que ça me sorte complètement de l'esprit. J'y regarde dès que j'ai quelques minutes Link to comment Share on other sites More sharing options...
BeComWeb Posted January 3, 2017 Share Posted January 3, 2017 (edited) En fait dans ce contexte la solution était très simple et ne demandait qu'un simple ajout de code dans le template themes/nom-de-votre-theme/modules/blockcart/blockcart.tpl.Donc après la dernière div.layer_cart_row on en ajoute une nouvelle. Elle va contenir un <strong> pour le titre ("Weight" que j'ai volontairement laissé en anglais pour que vous puissiez/deviez le traduire depuis le back-office proprement) et un span (à qui j'ai donné une classe même si ce n'était pas indispensable) qui va contenir le résultat de la méthode native getTotalWeight() de la classe Cart qui se charge de calculer le poids d'un panier. Pas de souci avec l'Ajax ici puisque le template est réappellé/recompilé à chaque ajout au panier. Seule petite limite avec ma technique ci-dessous c'est que j'ai mis le terme "kgs" en dur. Je ne pense pas que ce soit votre cas mais pour une boutique qui travaillerait en grammes ou en unités étrangères (comme les pounds britanniques) ça n'irait pas (il faudrait ajouter un assign smarty dans le fichier PHP du module du style $this->context->smarty->assign('weight_unit', Configuration::get('PS_WEIGHT_UNIT'));). <div class="layer_cart_row"> <strong class="dark"> {l s='Total' mod='blockcart'} {if $use_taxes && $display_tax_label && $show_tax} {if $priceDisplay == 1} {l s='(tax excl.)' mod='blockcart'} {else} {l s='(tax incl.)' mod='blockcart'} {/if} {/if} </strong> <span class="ajax_block_cart_total"> {if $cart_qties > 0} {if $priceDisplay == 1} {convertPrice price=$cart->getOrderTotal(false)} {else} {convertPrice price=$cart->getOrderTotal(true)} {/if} {/if} </span> </div> <div class="layer_cart_row"> <strong class="dark"> {l s='Weight' mod='blockcart'} </strong> <span class="ajax_block_cart_weight"> {$cart->getTotalWeight(null)} kgs </span> </div> Edited January 3, 2017 by BeComWeb (see edit history) Link to comment Share on other sites More sharing options...
Mühldorfer-france Posted January 3, 2017 Author Share Posted January 3, 2017 Merci beaucoup ca fonctionne nikeljuste changer :ligne 322: {l s='Weight' mod='blockcart'} weight par poids car sinon ca reste à zero!!!merci encoregreg Link to comment Share on other sites More sharing options...
BeComWeb Posted January 3, 2017 Share Posted January 3, 2017 Merci beaucoup ca fonctionne nikel juste changer : ligne 322: {l s='Weight' mod='blockcart'} weight par poids car sinon ca reste à zero!!! merci encore greg Hum... je ne pense pas que ton bug venait de ça.Je suspecte que tu avais utilisé des double quotes autour de Weight et/ou de blockcart alors que le système de traduction impose les simples quotes. En tout cas pense à passer le topic en "[Résolu]", d'autant qu'il pourrait intéresser d'autres utilisateurs. Bonne soirée 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