function setclassementcaracdisp($idcaracteristique, $idcaracdispdesc, $classement, $lang) { $caracdispdesc = new Caracdispdesc(); if ($caracdispdesc->charger($idcaracdispdesc, $lang)) { if ($classement == $caracdispdesc->classement) { return; } if ($classement > $caracdispdesc->classement) { $offset = -1; $between = "{$caracdispdesc->classement} and {$classement}"; } else { $offset = 1; $between = "{$classement} and {$caracdispdesc->classement}"; } $caracdisp = new Caracdisp(); $query = "\n\t\t\t\tselect\n\t\t\t\t\tid\n\t\t\t\tfrom\n\t\t\t\t\t{$caracdispdesc->table}\n\t\t\t\twhere\n\t\t\t\t\tlang={$lang}\n\t\t\t\tand\n\t\t\t\t\tcaracdisp in (select id from {$caracdisp->table} where caracteristique = {$idcaracteristique})\n\t\t\t\tand\n\t\t\t\t\tclassement BETWEEN {$between}\n\t\t\t"; $resul = $caracdispdesc->query($query); $ddd = new Caracdispdesc(); while ($resul && ($row = $caracdispdesc->fetch_object($resul))) { if ($ddd->charger($row->id, $lang)) { $ddd->classement += $offset; $ddd->maj(); } } $caracdispdesc->classement = $classement; $caracdispdesc->maj(); } }
</div> <!-- fin du bloc de gestion des informations du produit --> <!-- début du bloc de gestion des caractéristiques ajoutées--> <div class="entete"> <div class="titre" style="cursor:pointer" onclick="$('#pliantcaracteristiques').show('slow');"><?php echo trad('CARACTERISTIQUES_AJOUTEES', 'admin'); ?> </div> </div> <div class="blocs_pliants_prod" id="pliantcaracteristiques"> <?php $rubcaracteristique = new Rubcaracteristique(); $caracteristiquedesc = new Caracteristiquedesc(); $caracdisp = new Caracdisp(); $caracdispdesc = new Caracdispdesc(); $caracteristique = new Caracteristique(); $query = "select * from {$rubcaracteristique->table},{$caracteristique->table} where {$rubcaracteristique->table}.caracteristique={$caracteristique->table}.id and {$rubcaracteristique->table}.rubrique='" . $rubrique . "' order by {$caracteristique->table}.classement"; $resul = mysql_query($query); $caracval = new Caracval(); while ($row = mysql_fetch_object($resul)) { $caracval = new Caracval(); $caracteristiquedesc->charger($row->caracteristique); $caracval->charger($produit->id, $row->caracteristique); $query2 = "select c.* from {$caracdisp->table} c left join {$caracdispdesc->table} cd on cd.caracdisp = c.id and cd.lang = {$lang} where c.caracteristique='{$row->caracteristique}' order by cd.classement"; $resul2 = mysql_query($query2); $nbres = mysql_num_rows($resul2); if (!$nbres) { ?> <ul class="ligne1">
function boucleCaracdisp($texte, $args) { global $caracdisp; $caracteristique = lireTag($args, "caracteristique", "int"); /* DEBUT CODE DEPRECIE 1.5.2 par roadster31 */ $stockmini = lireTag($args, "stockmini", "int"); /* FIN CODE DEPRECIE */ $courante = lireTag($args, "courante", "int"); $rubrique = lireTag($args, "rubrique", "int"); $classement = lireTag($args, "classement", "string"); $deb = lireTag($args, "deb", "int"); $num = lireTag($args, "num", "int"); $id = lireTag($args, "caracdisp", "int_list"); if ($id == "") { $id = lireTag($args, "id", "int"); } $liste = ""; $res = ""; $search = ""; $limit = ""; $tcaracdisp = new Caracdisp(); $tcaracdispdesc = new Caracdispdesc(); // preparation de la requete if ($caracteristique != "") { $search .= " and {$tcaracdisp->table}.caracteristique=\"{$caracteristique}\""; } if ($id != "") { $search .= " and {$tcaracdisp->table}.id IN ({$id})"; } if ($classement == "alpha") { $order = "order by {$tcaracdispdesc->table}.titre"; } else { if ($classement == "alphainv") { $order = "order by {$tcaracdispdesc->table}.titre desc"; } else { if ($classement == "manuel") { $order = "order by {$tcaracdispdesc->table}.classement"; } } } if ($deb == "") { $deb = 0; } if ($num != "") { $limit = "limit {$deb},{$num}"; } if (ActionsLang::instance()->get_action_si_trad_absente() == ActionsLang::UTILISER_LANGUE_INDIQUEE) { // On retourne uniquement les caracdisp traduites $search .= " and {$tcaracdispdesc->table}.id is not null"; } $query = "\n\t\t\tselect {$tcaracdisp->table}.* from {$tcaracdisp->table}\n\t\t\tleft join {$tcaracdispdesc->table} on {$tcaracdispdesc->table}.caracdisp = {$tcaracdisp->table}.id and {$tcaracdispdesc->table}.lang = " . ActionsLang::instance()->get_id_langue_courante() . "\n\t\t\twhere 1 {$search}\n\t\t\t{$order}\n\t\t\t{$limit}\n\t\t"; $resul = CacheBase::getCache()->query($query); if (!empty($resul)) { $compt = 1; foreach ($resul as $row) { if ($courante == "1" && ($id != $caracdisp && !strstr($caracdisp, "-" . $id))) { continue; } else { if ($courante == "0" && ($id == $caracdisp || strstr($caracdisp, "-" . $id))) { continue; } } /* DEBUT CODE DEPRECIE 1.5.2 par roadster31 * * Le stock n'a pas vraiement de sens dans le contexte des caracteristiques. Info de Yoan le 28/11 : * "Je me demande si ce n'est pas un vieux truc qui permettait de générer des menus particuliers en disant combien de produits avaient "cette caractéristique". * Je t'avoue que là je ne vois pas trop l'intérêt non plus, sur le coup." * */ if ($stockmini != "") { $caracvalch = new Caracval(); $prod = new Produit(); $querych = "select count(*) as nb\n from {$prod->table},{$caracvalch->table}\n where {$prod->table}.id={$caracvalch->table}.produit and {$prod->table}.ligne=1 and {$caracvalch->table}.caracdisp='" . $row->id . "'"; $resulch = CacheBase::getCache()->query($querych); if ($resulch[0]->nb < $stockmini) { continue; } } /* FIN CODE DEPRECIE */ $tcaracdispdesc->charger_caracdisp($row->id); $tcaracdisp->charger($row->id); $id = $row->id . "-"; $caracteristique = $tcaracdisp->caracteristique . "-"; if ($caracteristique == "{$tcaracdisp->caracteristique}" . "-" && $caracdisp == $row->id . "-") { $selected = 'selected="selected"'; } else { $selected = ""; } $temp = str_replace("#IDC", $id, $texte); $temp = str_replace("#ID", $tcaracdisp->id, $temp); $temp = str_replace("#RUBRIQUE", "{$rubrique}", $temp); $temp = str_replace("#CARACTERISTIQUE", $tcaracdisp->caracteristique, $temp); $temp = str_replace("#CARACTERISTIQUEC", $caracteristique, $temp); $temp = str_replace("#TITRE", "{$tcaracdispdesc->titre}", $temp); $temp = str_replace("#SELECTED", "{$selected}", $temp); $temp = str_replace("#COMPT", $compt, $temp); $temp = str_replace("#NBRES", count($resul), $temp); $res .= $temp; $compt++; } } return $res; }
public function addCaracdisp($title, $lang) { $this->verifyLoaded(); $caracdisp = new Caracdisp(); $caracdisp->caracteristique = $this->id; $caracdisp->id = $caracdisp->add(); $caracdispdesc = new Caracdispdesc(); $caracdispdesc->caracdisp = $caracdisp->id; $caracdispdesc->lang = $lang; $caracdispdesc->classement = $this->getMaxCaracdispRank($this->id, $lang) + 1; $caracdispdesc->titre = $title; $caracdispdesc->add(); ActionsModules::instance()->appel_module("ajcaracdisp", $caracdisp); redirige("caracteristique_modifier.php?id=" . $this->id . "&lang=" . $lang); }