Page 1 sur 1

Ajout d'une condition if else

MessagePublié: 06 Avr 2015, 18:06
par mirbrou
Bonjour,
je veux mettre une condition dans ma boutique pour permettre d'afficher deux types différents de menu déroulant pour placer une commande. l'une est à l'unité et l'autre présente des unités de longueur. Pour ce faire, j'utilise les balises produits. Or les tentatives que j'ai faites renvoient toujours le même résultats. Voici ce que j'ai fait :
Dans le fichier : \catalog\view\theme\default\template\product\product.tpl

Code: Tout sélectionner
<div class="content">
              <?php if ($product_tags=="Pré-coupé") { ?>
                test1 
              <?php } else ?>
                 test2
              <?php echo "<pre>product_tags=|";print_R($product_tags);echo "|<pre>\n"; ?>
              <?php echo "<pre>tags=|";print_R($tags);echo "|<pre>\n"; ?>
              <?php ?>
                <p></p>

J'ai aussi essayé ce code :
Code: Tout sélectionner
<?php if (in_array("Precut", $tags)) { ?>
                          test1
                <?php } else { ?>
                         test2
                 <?php } ?>

et j'ai sensiblement le même résultat.
Sur l'image jointe, le produit de gauche devrait retourner "test2" et le produit de droite "test1".
Quelqu'un pourrait me dire l'erreur que je fais ou me proposer une solution pour atteindre mon but ?

Re: Ajout d'une condition if else

MessagePublié: 08 Avr 2015, 08:49
par lucho69
là on est sur du code pur et dur

je pense que le else est mal fait , il manque l'ouverture et ferture du else
j'éviterais aussi des valeurs avec accent ou tiret qui peuvent être stockés différemment

<?php if ($product_tags=="precoupe") { ?>
test1
<?php } else { ?>
test2 <?php } ?>

Re: Ajout d'une condition if else

MessagePublié: 09 Avr 2015, 02:58
par mirbrou
Merci !

Mais pas de bol. Ça retourne toujours la valeur test 2 :-(

Re: Ajout d'une condition if else

MessagePublié: 09 Avr 2015, 10:16
par lucho69
fais afficher la valeur du contenu $product_tags dans le TPL pour être sur que le champ est renseigné
si il s'affiche vide, c'est que le champ n'est pas envoyé

Re: Ajout d'une condition if else

MessagePublié: 25 Avr 2015, 00:49
par mirbrou
Je reviens avec mon problème que je n'ai pas encore résolu.

J'ai des valeurs pour product_tags. Les tags sont bel et bien présent. Malgré tout, c'est le résultat du else s'affiche.
j'ai tenté avec category_id, même résultat.
La seule façon de faire afficher le résultat de la première condition, c'est avec product_id.
Je dois dire que je travaille dans la page views/..../product.tpl

Par contre, dans le fichier controller/..../product.tpl , j'ai placé le code suivant et tout fonctionne bien:
if ($category_id == '51') {
echo "<h1>*** Précoupé ***</h1>";
} else {
echo "<h1>*** au mètre ***</h1>";
}
if ($product_tags == 'precut') {
echo "<h1>*** Précoupé ***</h1>";
} else {
echo "<h1>*** au mètre ***</h1>";
}

Donc la condition fonctionne à partir de controller mais pas de view.

Help, je ne peux mettre ma boutique en ligne tant que je n'ai pas résolu ce problème.

je joints le fichier View/..../product.tpl. qui sait, il vous donnera peut-être la clé de mon énigme


Merci pour votre aide.

Code: Tout sélectionner
<div class="form-group">
                <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label>    
                <p></p>
             <?php if ($product_tags == 'precut'): ?>
              <input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" />
              <input type="hidden" name="product_id" value="<?php echo $product_id; ?>" />
              <?php else: ?>
               <select id="quantity" name="quantity">
               <option value="1">0.25 m</option>   
                <option value="2">0.50 m</option>
                <option value="3">0.75 m</option>
           <option value="4">1.00 m</option>
                <option value="5">1.25 m</option>
        <option value="6">1.50 m</option>
         <option value="7">1.75 m</option>
              <option value="8">2.0 m</option>
                <option value="9">2.25 m</option>
                 <option value="10">2.50 m</option>
                 <option value="11">2.75 m</option>
                 <option value="12">3.0 m</option>
                 <option value="13">3.25 m</option>
                 <option value="14">3.50 m</option>
                 <option value="15">3.75 m</option>
                 <option value="16">4.0 m</option>
                 <option value="17">4.25 m</option>
                 <option value="18">4.50 m</option>
                 <option value="19">4.75 m</option>
      <option value="20">5 m</option>
             </select>
               <?php endif; ?>

Re: Ajout d'une condition if else

MessagePublié: 25 Avr 2015, 15:09
par mirbrou
Je dois ajouter qu'il y a eu une mise à jour de la base de données de la plateforme qui héberge ma boutique, et que les petits coquins ont éliminé le fichier product_tags. Les tags "tag" se retrouvent maintenant dans le fichier product_description.

:?

Re: Ajout d'une condition if else

MessagePublié: 25 Avr 2015, 18:03
par lucho69
difficile d'apporter de l'aide sur ce type de pb, le forum est un lieu d'entraide, mais du dépannage pur , ça peut être difficile
pb de base de données : il faut revoir l partie cassée avec une sauvegarde à jour
pour le else ifelse , tu rentre dans des imbrications complexes- essaie de faire des tests simples
je viens de finir un petit developpement pour autoriser le chargerment de pdf et de swf
je voulais faire un :
if pdf : xxxx
elseif swf : yyy
else : zzz

au final j'ai fait
if pdf : xxx
else
if swf : yyy
else
zzzz
endif
endif
et ca a été OK

Re: Ajout d'une condition if else

MessagePublié: 12 Juin 2015, 14:35
par mirbrou
Bonjour,

Le problème a été résolu, mais en utilisant category_id plutôt que product_tags :

Dans le fichier product.tpl :
La syntaxe utilisée :
<?php if ($category_id == "51") { ?>

Code: Tout sélectionner
<div class="form-group">
               <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label>
                <p></p>
             <?php if (($category_id == "51")or ($category_id == "55")) { ?>
               <input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" />
            </select>
            <?php } else { ?>
               <select id="quantity" name="quantity">
               <option value="1">0.25 m</option>
                <option value="2">0.50 m</option>
                <option value="3">0.75 m</option>
           <option value="4">1.00 m</option>
                <option value="5">1.25 m</option>
        <option value="6">1.50 m</option>
         <option value="7">1.75 m</option>
              <option value="8">2.0 m</option>
                <option value="9">2.25 m</option>
                 <option value="10">2.50 m</option>
                 <option value="11">2.75 m</option>
                 <option value="12">3.0 m</option>
                 <option value="13">3.25 m</option>
                 <option value="14">3.50 m</option>
                 <option value="15">3.75 m</option>
                 <option value="16">4.0 m</option>
                 <option value="17">4.25 m</option>
                 <option value="18">4.50 m</option>
                 <option value="19">4.75 m</option>
      <option value="20">5 m</option>
             </select>
               <?php } ?> 


Merci