THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline


Hello!

Mon client voulait lier des produits "parents" à d'autres via "les accessoires". => aucun souci
Mais ne pas pouvoir commander ces "accessoires" sans les produits "parents". => aucun souci (mise hors ligne)

Et que dans le panier quand on supprimait les produits "parents", les "accessoires" disparaissaient aussi => GROS BUG

Quand le produit "parent" est en position "0", que je le supprime et qu'il n'y a donc plus de produits "parents" dans le panier, je supprime les "accessoires" mais là.. ça me vidait tout le panier!! O.o

function supprimer($id){

		if (isset($this->tabarticle[$id])) {

			// Supprimer l'élément concerné
			unset($this->tabarticle[$id]);

			// Restaurer la continuité des indexes
			$this->tabarticle = array_values($this->tabarticle);

			$this->nbart--;
			
			$listeFils = array();
			for($i=0; $i<$this->nbart; $i++) 
			{
				if($this->tabarticle[$i]->parent > $id)
					$this->tabarticle[$i]->parent--;
				elseif($this->tabarticle[$i]->parent==$id)
					$listeFils[] = $i;
			}
			
			for($i=0; $i<count($listeFils); $i++)
				$this->supprimer($listeFils[$i]);
		}
	}

La ligne qui posait souci :

elseif($this->tabarticle[$i]->parent==$id)

"vide" == 0
des fois oui... des fois non... c'est à rien y comprendre...

je ne sais même pas à quoi "parent" sert.... du coup j'ai mis un triple "=" et plus de souci...

Si quelqu'un avait des éclaircissements à ce niveau.... parce que là je patauge (même si j'ai corrigé le souci..)


Aide les autres, ils t'aideront en retour.

Offline


== ou != comparent sans prendre le type des variables en compte :

"" == null == 0 == false      <------ danger, effet de bord possibles !

par contre, === et !== prennent en compte le type, donc :

"" !== null !== 0 !== false   

Cf. http://php.net/manual/fr/language.opera … arison.php


CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2

Offline


Ah non mais je suis d'accord ^^
C'est pas moi qui ait fait ce code... c'est natif de Thelia...


Aide les autres, ils t'aideront en retour.

Offline