Exemple #1
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;
}
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);
 }