function majcaracdisp($id, $lang)
{
    global $caracdispdesc_titre;
    foreach ($caracdispdesc_titre as $idcaracdisp => $valeur) {
        $caracdispdesc = new Caracdispdesc();
        $existe = $caracdispdesc->charger_caracdisp($idcaracdisp, $lang);
        $caracdispdesc->caracdisp = $idcaracdisp;
        $caracdispdesc->lang = $lang;
        $caracdispdesc->titre = $valeur;
        if (!$existe) {
            $caracdispdesc->classement = 1 + maxClassement($id, $lang);
            $caracdispdesc->add();
        } else {
            $caracdispdesc->maj();
        }
        $caracdisp = new Caracdisp($idcaracdisp);
        ActionsModules::instance()->appel_module("modcaracdisp", $caracdisp);
    }
    redirige('caracteristique_modifier.php?id=' . $id);
}
            echo $row->caracteristique;
            ?>
" id="typecaract<?php 
            echo $row->caracteristique;
            ?>
" value="c" />
        				<select name="caract<?php 
            echo $row->caracteristique;
            ?>
[]" id="caract<?php 
            echo $row->caracteristique;
            ?>
" size="5" multiple="multiple"  class="form_caracterisques_ajoutees">
          					<?php 
            while ($row2 = mysql_fetch_object($resul2)) {
                $caracdispdesc->charger_caracdisp($row2->id);
                $caracval->charger_caracdisp($produit->id, $row2->caracteristique, $caracdispdesc->caracdisp);
                if ($caracdispdesc->caracdisp == $caracval->caracdisp) {
                    $selected = "selected=\"selected\"";
                } else {
                    $selected = "";
                }
                ?>
          						<option value="<?php 
                echo $caracdispdesc->caracdisp;
                ?>
" <?php 
                echo $selected;
                ?>
>
            					<?php 
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 modifier($titre, $chapo, $description, $affiche, $caracdisp, $lang)
 {
     $this->verifyLoaded();
     $caracdesc = new Caracteristiquedesc($this->id, $lang);
     $caracdesc->titre = $titre;
     $caracdesc->chapo = nl2br($chapo);
     $caracdesc->description = nl2br($description);
     $this->affiche = $affiche != "" ? 1 : 0;
     $this->maj();
     if ($caracdesc->id) {
         $caracdesc->maj();
     } else {
         $caracdesc->lang = $lang;
         $caracdesc->caracteristique = $this->id;
         $caracdesc->add();
     }
     ActionsModules::instance()->appel_module("modcaracteristique", new Caracteristique($this->id));
     //Caracdispdesc
     if (!empty($caracdisp) && is_array($caracdisp)) {
         foreach ($caracdisp as $id => $value) {
             $caracdispdesc = new Caracdispdesc();
             $caracdispdesc->charger_caracdisp($id, $lang);
             $caracdispdesc->titre = $value;
             if ($caracdispdesc->id) {
                 $caracdispdesc->maj();
             } else {
                 $caracdispdesc->caracdisp = $id;
                 $caracdispdesc->lang = $lang;
                 $caracdispdesc->classement = $this->getMaxCaracdispRank($this->id, $lang) + 1;
                 $caracdispdesc->add();
             }
             $caracdisp = new Caracdisp($id);
             ActionsModules::instance()->appel_module("modcaracdisp", $caracdisp);
         }
     }
     redirige("caracteristique_modifier.php?id=" . $this->id . "&lang=" . $lang);
 }