bitbox Posted June 18, 2012 Share Posted June 18, 2012 Bonjour, Dans le template des produits phares (homefeatured.tpl) le code smarty utilisé pour l'ajout de la classe "last_line" au tag "li" des produits ne fonctionne pas correctement lorsque le nombre de produits affichés est un multiple exact du nombre de produits par ligne. En effet, le code présent dans le .tpl par défaut est: ... {foreach from=$products item=product name=blocknewproductsProducts} <li class="ajax_block_product {if $smarty.foreach.blocknewproductsProducts.first}first_item{elseif $smarty.foreach.blocknewproductsProducts.last}last_item{else}item{/if} {if $smarty.foreach.blocknewproductsProducts.iteration%$nbItemsPerLine == 0}last_item_of_line{elseif $smarty.foreach.blocknewproductsProducts.iteration%$nbItemsPerLine == 1} {/if} {if $smarty.foreach.blocknewproductsProducts.iteration > ($smarty.foreach.blocknewproductsProducts.total - ($smarty.foreach.blocknewproductsProducts.total % $nbItemsPerLine))}last_line{/if}"> ... Or, dans la condition {if $smarty.foreach.blocknewproductsProducts.iteration > ($smarty.foreach.blocknewproductsProducts.total - ($smarty.foreach.blocknewproductsProducts.total % $nbItemsPerLine))} le modulo (%) du total de produits par le nombre de produits par ligne retourne 0 (zéro) lorsque ce total est un multiple exact du nombre de produits par ligne. Dans ce cas la condition vérifie donc que itération > total - 0 qui n'est forcément jamais vérifiée... Il faut donc, dans ce cas particulier, retirer le nombre de produits par ligne du total pour déterminer les itérations correspondantes à la dernière ligne. Je propose le code suivant pour résoudre ce problème: ... {foreach from=$products item=product name=homeFeaturedProducts} {math equation="(total%perLine)" total=$smarty.foreach.homeFeaturedProducts.total perLine=$nbItemsPerLine assign=totModulo} {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if} <li class="ajax_block_product {if $smarty.foreach.homeFeaturedProducts.first}first_item{elseif $smarty.foreach.homeFeaturedProducts.last}last_item{else}item{/if} {if $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 0}last_item_of_line{elseif $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 1} {/if} {if $smarty.foreach.homeFeaturedProducts.iteration > ($smarty.foreach.homeFeaturedProducts.total - $totModulo)}last_line{/if}"> ... En espérant que cela pourra en aider certains... Bien à vous. Thibaut Link to comment Share on other sites More sharing options...
Dev On Web Posted June 18, 2012 Share Posted June 18, 2012 Bonjour, Si cela résout un soucis avec ce module livré par PrestaShop, il serait bien de proposer un "patch" sur la Forge en ajoutant un "Improvement" Comme ça, le module pourrait être nativement corrigé par les dev de la Team Presta. Link to comment Share on other sites More sharing options...
bitbox Posted June 19, 2012 Author Share Posted June 19, 2012 Bonjour, Sur votre conseil j'ai rempli un (court) rapport dans le système de tracking... http://forge.prestashop.com/browse/PNM-288 Un petit détail que je n'ai pas saisi dans le procédé d'enregistrement du "bug" est que je n'ai pas réussi à le qualifié en "Improvement" (il est en "New Feature") et sa priorité est minimale... Il ne me semble pas pouvoir modifier l'élément une fois qu'il est soumis !? Rien de bien grave ceci dit. 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