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; }
function ajcaracdisp($id, $caracdisp, $lang) { $tcaracdisp = new Caracdisp(); $tcaracdisp->caracteristique = $id; $lastid = $tcaracdisp->add(); $tcaracdisp->id = $lastid; $tcaracdispdesc = new Caracdispdesc(); $tcaracdispdesc->caracdisp = $lastid; $tcaracdispdesc->lang = $lang; $tcaracdispdesc->titre = $caracdisp; $tcaracdispdesc->classement = 1 + maxClassement($id, $lang); $tcaracdispdesc->add(); ActionsModules::instance()->appel_module("ajcaracdisp", $tcaracdisp); redirige('caracteristique_modifier.php?id=' . $id); }
public function delCaracdisp($caracdisp, $lang) { $tcaracdisp = new Caracdisp($caracdisp); $tcaracdisp->delete(); ActionsModules::instance()->appel_module("suppcaracdisp", $tcaracdisp); redirige("caracteristique_modifier.php?id=" . $this->id . "&lang=" . $lang); }