Tchupa Posted August 15, 2013 Share Posted August 15, 2013 Bonjour à tous, voilà j'essaie de mettre en place le module de la loi chatel mais j'aimerais que les dates de livraison soit de couleur différente afin de distinguer correctement les articles en stock de ceux qui ne le sont pas. {if $delivery.5 <= 0} <p class="delivery"><font color="#f65a11">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {else} <p class="delivery"><font color="#03db2c">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {/if} Je ne sais pas trop ce qui cloche dans cette condition car le résultat obtenu c'est qu'il m'affiche 2 fois la date de livraison, une fois dans une couleur et en dessous une deuxième fois dans l'autre couleur. aurais je fais une erreur ? En vous remerciant. Cordialement Tchupa. Link to comment Share on other sites More sharing options...
Martin Uker K Posted August 15, 2013 Share Posted August 15, 2013 (edited) Bon matin! Je ne comprends pas super bien ce que tu tentes de faire, mais je peux tout de même régler un point : La balise font n'est pas supporté en html 5, utilise du CSS à la place. Ta condition est trop longue, ton segment de code est identique dans les deux conditions, seul la valeur de la couleur change. Donc je verrais à réviser ton code comme ceci: <p class="delivery" style="color:{if $delivery.5 <= 0}#f65a11{else}#03db2c{/if};"><font color="#f65a11">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> Deuxièmement, je trouve étrange le fait que tu traites avec cette variable ($delivery) comme un tableau et un objet à la fois. $delivery.5 signifie que tu t'attend à un ObjectModel ou un enfant de cette interface. $delivery[0] désigne que cette variable est une variable de type Array() et non un ObjectModel. Cordialement, Martin Edited August 15, 2013 by Martin Uker K (see edit history) Link to comment Share on other sites More sharing options...
Tchupa Posted August 18, 2013 Author Share Posted August 18, 2013 (edited) Bonjour, tout d'abord merci pour ta réponse, ce que je voudrais faire en gros c'est afficher mon délai de livraison en vert quand le produit est en stock et l'afficher en orange quand l'article choisi nécessite un délai supplémentaire (donc hors stock physiquement). D'ailleurs dans mon premier poste je n'ai pas mis la bonne condition "mode boulet" {if $delivery.5 <= 0} <p class="delivery"><font color="#f65a11">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {elseif $delivery.5 >0} <p class="delivery"><font color="#03db2c">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {/if} Et le code du tpl en entier: {if $datesDelivery|count} <div id="loi_chatel"> {if !$oos} <p class="oos"><a href="{$base_dir}cms.php?id_cms={$lc_cms}" target="_new"><font color="#f65a11">{l s='Expedition prevue'}</font></a></p> {else} <p class="oos"><a href="{$base_dir}cms.php?id_cms={$lc_cms}" target="_new"><font color="#03db2c">{l s='En stock'}</font></a></p> {/if} {foreach from=$datesDelivery item=delivery} {if $delivery.5 <= 0} <p class="delivery"><font color="#f65a11">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {elseif $delivery.5 >0} <p class="delivery"><font color="#03db2c">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {/if} {/foreach} <div name="openclosecarrier" id="openclosecarrier" class="cachediv"> {foreach from=$datesDelivery item=delivery} {if $delivery.5 == 0} <div class="firstcarrier"> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {/if} {/foreach} {foreach from=$datesDelivery item=delivery} {if $delivery.5 <> 0} <div class="allcarrier"> <p class="delivery">{l s='Livré entre le'} {$delivery.0} {l s='et le'} {$delivery.1}</p> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {/if} Le soucis que je rencontre le voici en image: J'espère que c'est plus clair. Merci. Tchupa. Edited August 18, 2013 by Tchupa (see edit history) Link to comment Share on other sites More sharing options...
coeos.pro Posted August 18, 2013 Share Posted August 18, 2013 le problème viens de : {foreach from=$datesDelivery item=delivery} {if $delivery.5 == 0} code 1 {/if} {/foreach} {foreach from=$datesDelivery item=delivery} {if $delivery.5 <> 0} code 2 {/if} {/foreach} pour le code 2 tu as foreach et if <> donc ça affiche tout quand c'est différent de 0... Le 2eme problème c'est de mettre 2 foreach identiques à la suite, il faut les fusionner, essaye de remplacer tes 2 foreach par : {foreach from=$datesDelivery item=delivery} {if $delivery.5 eq 0} code 1 {else} code 2 {/if} {/foreach} autrement dit : {foreach from=$datesDelivery item=delivery} {if $delivery.5 eq 0} <div class="firstcarrier"> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {else} <div class="allcarrier"> <p class="delivery">{l s='Livré entre le'} {$delivery.0} {l s='et le'} {$delivery.1}</p> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {/if} {/foreach} Link to comment Share on other sites More sharing options...
Tchupa Posted August 18, 2013 Author Share Posted August 18, 2013 Bonjour, je viens de tester le code que tu as modifié j'obtiens 3 lignes de date de livraison en fusionnant les foreach :/ Link to comment Share on other sites More sharing options...
coeos.pro Posted August 18, 2013 Share Posted August 18, 2013 je n'avais vu que 2 {foreach from=$datesDelivery item=delivery} à la suite en faite il y en as 3... fusionne avec le premier foreach (qui fait 8 lignes) pour avoir : {foreach from=$datesDelivery item=delivery} {if $delivery.5 eq 0} <p class="delivery"><font color="#f65a11">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> <div class="firstcarrier"> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {else} <p class="delivery"><font color="#03db2c">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> <div class="allcarrier"> <p class="delivery">{l s='Livré entre le'} {$delivery.0} {l s='et le'} {$delivery.1}</p> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {/if} {/foreach} Link to comment Share on other sites More sharing options...
Tchupa Posted August 19, 2013 Author Share Posted August 19, 2013 Bonjour, j'ai toujours 3 lignes concernant les dates :/ <!-- date de livraison --> {if $datesDelivery|count} <div id="loi_chatel"> {if !$oos} <p class="oos"><a href="{$base_dir}cms.php?id_cms={$lc_cms}" target="_new"><font color="#f65a11">{l s='Expedition prevue'}</font></a></p> {else} <p class="oos"><a href="{$base_dir}cms.php?id_cms={$lc_cms}" target="_new"><font color="#03db2c">{l s='En stock'}</font></a></p> {/if} {foreach from=$datesDelivery item=delivery} {if $delivery.5 eq 0} <p class="delivery"><font color="#f65a11">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> <div class="firstcarrier"> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {else} <p class="delivery"><font color="#03db2c">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> <div class="allcarrier"> <p class="delivery">{l s='Livré entre le'} {$delivery.0} {l s='et le'} {$delivery.1}</p> <p class="carriername">{$delivery.2}</p> <p class="carrierimg">{$delivery.3} </p> <p class="carrierprice">{$delivery.4}</p> </div> {/if} {/foreach} </div> <!--<div name="openclosecarrieropen" id="openclosecarrieropen"><p class="open"><a class="openclose" href="javascript:DivStatus( 'openclose', 'carrier' )">{l s='Tous les modes de livraison'}<img src="{$base_dir}modules/blockloichatel/img/open.gif" alt="open" /></a></p></div> <div name="openclosecarrierclose" id="openclosecarrierclose" class="cachediv"><p class="close"><a class="openclose" href="javascript:DivStatus( 'openclose', 'carrier' )">{l s='Réduire'}<img src="{$base_dir}modules/blockloichatel/img/close.gif" alt="close" /></a></p></div> --> </div> {/if} <!-- fin date de livraison --> Tchupa. Link to comment Share on other sites More sharing options...
coeos.pro Posted August 19, 2013 Share Posted August 19, 2013 dans ton code je ne vois pas de message en couleur bleu, ça viens d'où ? tu as bien forcé la compilation smarty ? Link to comment Share on other sites More sharing options...
Tchupa Posted August 19, 2013 Author Share Posted August 19, 2013 Je me posais la même question peut être un fichier dans le module en question, concernant la compilation c'est Ok c'est ma version de développement donc cache désactivé et compilation activé en permanence sur celle-ci. Link to comment Share on other sites More sharing options...
coeos.pro Posted August 19, 2013 Share Posted August 19, 2013 tu es en local ou tu as une url ? Le code que tu mets plus haut est dans le fichier product.tpl ? tu n'as pas fait un copié collé avec bout de code ? Link to comment Share on other sites More sharing options...
Tchupa Posted August 19, 2013 Author Share Posted August 19, 2013 Je suis en local, le code que j'ai mis plus haut est bien dans le fichier product.tpl, je viens de faire un test en supprimant les lignes qui affiches les différents transporteur , la ligne bleu disparait, mais me reste toujours la ligne orange et verte quelque soit la condition rempli: <!-- date de livraison --> {if $datesDelivery|count} <div id="loi_chatel"> {if !$oos} <p class="oos"><a href="{$base_dir}cms.php?id_cms={$lc_cms}" target="_new"><font color="#f65a11">{l s='Expedition prevue'}</font></a></p> {else} <p class="oos"><a href="{$base_dir}cms.php?id_cms={$lc_cms}" target="_new"><font color="#03db2c">{l s='En stock'}</font></a></p> {/if} {foreach from=$datesDelivery item=delivery} {if $delivery.5 eq 0} <p class="delivery"><font color="#f65a11">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {else} <p class="delivery"><font color="#03db2c">{l s='Livré entre le'} {$delivery[0]} {l s='et le'} {$delivery[1]}</font></p> {/if} {/foreach} </div> <!--<div name="openclosecarrieropen" id="openclosecarrieropen"><p class="open"><a class="openclose" href="javascript:DivStatus( 'openclose', 'carrier' )">{l s='Tous les modes de livraison'}<img src="{$base_dir}modules/blockloichatel/img/open.gif" alt="open" /></a></p></div> <div name="openclosecarrierclose" id="openclosecarrierclose" class="cachediv"><p class="close"><a class="openclose" href="javascript:DivStatus( 'openclose', 'carrier' )">{l s='Réduire'}<img src="{$base_dir}modules/blockloichatel/img/close.gif" alt="close" /></a></p></div> --> </div> {/if} <!-- fin date de livraison --> 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