2017-02-06 2 views
0

Je souhaite obtenir de l'aide sur les instructions 'if' de Symfony. Essentiellement, je suis en train de faire, si la valeur du prix est égale ou supérieure à 500 $, afficher «Livraison gratuite», sinon, cliquez sur «Cliquez sur & recueillir».Symfony If Statements

Ceci est un pour un thème prestashop et je le codage ci-dessous après la première instruction if

{else} 
         {if $pricediplay ==> 500} {l s='Free Shipping!'}{/if} 
        {else} 
         {if $pricediplay ==< 499.99} {l s='Click & Collect'}{/if} 
        {/if} 

Le codage toute cette partie est:

{if $option.total_price_with_tax && !$option.is_free && 
(!isset($free_shipping) || (isset($free_shipping) && !$free_shipping))} 
    {if $use_taxes == 1} 
     {if $priceDisplay == 1} 
       {convertPrice price=$option.total_price_without_tax} 
       {if $display_tax_label} 
        {l s='(tax excl.)'} 
       {/if} 
      {else} 
       {convertPrice price=$option.total_price_with_tax} 
       {if $display_tax_label} 
        {l s='(tax incl.)'} 
       {/if} 
     {/if} 
      {else} 
       {convertPrice price=$option.total_price_without_tax} 
    {/if} 
{else} 
    {if $pricediplay ==> 500} 
     {l s='Free Shipping!'} 
    {/if} 
{else} 
    {if $pricediplay ==< 499.99} 
     {l s='Click & Collect'} 
    {/if} 
{/if} 

Toute aide serait grandement appréciée .

Merci, Cohen

+0

Que se passe-t-il actuellement? Il semble que vous ayez cassé vos accolades après '{if $ pricediplay => 500}' – Andy

+0

Il génère une erreur 500 Internal Server lorsque j'applique les changements. Je suis sûr que j'ai fait quelque chose de mal, je ne sais pas ce que c'est. – geekcohen

+0

Les accolades cassées pourraient causer cela. Regardez dans votre journal des erreurs et voir ce que le message d'erreur est – Andy

Répondre

0

Il est difficile de dire de votre commentaire ce que vous essayez d'atteindre. Je pense que les changements que vous voulez peut-être quelque chose comme ceci:

{if $option.total_price_with_tax && !$option.is_free && 
(!isset($free_shipping) || (isset($free_shipping) && !$free_shipping))} 
    {if $use_taxes == 1} 
     {if $priceDisplay == 1} 
      {convertPrice price=$option.total_price_without_tax} 
      {if $display_tax_label} 
       {l s='(tax excl.)'} 
      {/if} 
     {else} 
      {convertPrice price=$option.total_price_with_tax} 
      {if $display_tax_label} 
       {l s='(tax incl.)'} 
      {/if} 
     {else} 
      {convertPrice price=$option.total_price_without_tax} 
     {/if} 
    {/if} 
{else} 
    {if $priceDisplay => 500} 
     {l s='Free Shipping!'} 
    {/if} 
{else} 
    {if $priceDisplay =< 499.99} 
     {l s='Click & Collect'} 
    {/if} 
{/if} 
+0

Je veux réaliser cela si l'affichage de prix est supérieur ou égal à 500 $ qu'il montre «Livraison gratuite». Si elle est inférieure ou égale à 499,99 $, cela montre «Cliquez et collectez» Je l'ai fait selon votre exemple de codage, mais pas de chance.Je pense que c'est la configuration de la plus grande que '==>' qui produit une erreur interne de 500 serveurs. – geekcohen

+0

Si '500' est où il se produit, peut-être changer cela à:' 500.00' Je veux dire ajouter les 2 décimales. –

+0

Toujours pas de joie. Je dois essayer d'obtenir la configuration supérieure ou égale à la configuration correcte. – geekcohen

1

S'il est censé être un modèle en utilisant brindille si les déclarations doivent être rédigées comme suit:

{% if ... %} 
    //your own logic... 
{% endif %} 

Vous pouvez utiliser à la fois:

{% elseif ... %} 
{% else %} 

pour faire différents cas.

Vous pouvez définir des variables comme ceci:

{% set var='toto' %} 

et afficher une variable comme ceci:

{{ var }} 

Enfin les opérateurs de comparaison sont écrits tels qu'ils sont prononcés:

  • plus supérieur ou égal à:> =
  • inférieur ou égal ual: < =
+0

Merci Olivier, est-ce que le ci-dessous est correct? '{% set var = "500"}% {% if $ priceDisplay == 1%} \t {% if $ priceDisplay> = {{var}}}% 'Livraison gratuite! {% endif%} \t \t {% elseif%} 'Click & Collect' \t {% else%} {% endif%} ' – geekcohen

+0

{% if $ priceDisplay> = var%} Livraison gratuite ! ' {% else%} 'Cliquez et collectez' {% endif%}. Dans votre exemple, var sera une chaîne et non un entier, c'est ce que vous voulez? Sinon, vous devez écrire {% set var = 500%} (sans citation) – OlivierC