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">
Example #3
0
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);
 }