THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


bonjour
je cherche à n'afficher que les produits qui sont en stock (des produits à déclinaisons pour être plus précis) et
je tente donc d'utiliser le parma declistockmini="1".
J'ai tenté ausssi declistockmini="1-"  dans des boucles du type :
  <THELIA_PROD type="PRODUIT" rubrique="#RUBRIQUE_ID" declistockmini="1-">
#TITRE
   </THELIA_PROD>

et quel que soit le stock, tous les produits de la rubrique en question s'affichent.

Merci d'avance pour quelques explications sur l'utilisation de ce param.

Offline


Il y a un petit bug dans la boucle produit.php

je l'ai signalé à Yoan, je pense que ça sera dans la prochaine version.
J'ai réglé le problème chez moi mais je teste sur la 1.3

  en attendant tu peux essayer en remplaçant cette portion de script dans boucle.php (entre la ligne
                  /* Demande de declinaisons */
et la ligne
                  if($motcle){

Cela règlera trois problèmes à la fois , ton histoire de declistockmini ,
le filtre par declinaison, qui bloquait aussi,
et le problème qui faisait que quand une requete SQL était infructueuse , cela affichait tous les produits, au lieu de n'en renvoyer aucun...

				/* Demande de declinaisons */
			if($declinaison != "" && $declinaison != 0){

			$ldeclinaison = explode("-", $declinaison);
			$ldeclidisp = explode("-", $declidisp);
			$ldeclistockmini = explode("-", $declistockmini);
						
			$i = 0;
			$liste="";
			$exdecprod = new Exdecprod();
			$stock = new Stock();
			$temoin=0;$temoin2=0;		
			while($i<count($ldeclinaison)-1){$declidisp = $ldeclidisp[$i];
			      if($declidisp != 0 ){ $temoin2++ ;
				  }
				  $i++;
				  }
							
			$i = 0;
			while($i<count($ldeclinaison)-1){

				$declinaison = $ldeclinaison[$i];
				$declidisp = $ldeclidisp[$i];
				
				
				$declistockmini = $ldeclistockmini[$i];
				if($declidisp != "" && $declidisp != 0 ){
				$query = "select * from $exdecprod->table where declidisp='$declidisp'";
				$resul = mysql_query($query);
		
				if(mysql_numrows($resul)) 
						while($row = mysql_fetch_object($resul))
							$liste .= "'$row->produit', ";
	
				if($liste!="") {
						$liste = substr($liste, 0, strlen($liste) - 2);
						$search .= " and id not in($liste)";
				}	
		
				$liste="";
				
				if($declistockmini != ""){
					$query = "select * from $stock->table where declidisp='$declidisp' and valeur>='$declistockmini'";
					$resul = mysql_query($query);

					if(mysql_numrows($resul)) 
							while($row = mysql_fetch_object($resul))
								$liste .= "'$row->produit', ";

					if($liste!="") {$temoin++;
								$liste = substr($liste, 0, strlen($liste) - 2);
								$search1 .= " and id in($liste)";
					
					}
					$liste="";
				}	
			};
				$i++;

			}
			
      
		}

		
		if ($temoin2 != 0 ) {if ($temoin >= 1)$search=$search.$search1;
		else if ($temoin == 0)$search=$search." and id in(0)";}
		 		
			
			$produit = new Produit();
			$produitdesc = new Produitdesc();
			
			$boutiqueprod = new Boutique();
			
						
			if($motcle){

pour l'emploi de declistockmini

il faut entrer declinaison declidisp et declistockmini dans ton appel de boucle produit....

  J'espère que ça peut te faire avancer(sauvegarde quand même, on ne sait jamais...)

, sinon patiente jusque à la prochaine version...

Last edited by david49 (13-06-2007 20:17:14)

Offline


merci beaucoup, je me penche mà dessus, alors.
bonnen journée

Offline


Re-moi et mes gaffes,

    j'avais oublié un test dans la portion de script précitée. Normalement , ce coup-ci c'est
bon.

Murfadiop si tu passes par là,  recopie de nouveau le script plus haut car je ne  l'ai corrigé que cet après-midi... roll

Last edited by david49 (13-06-2007 20:12:46)