. */
/* */
/*************************************************************************************/
require_once("pre.php");
require_once("auth.php");
if(! est_autorise("acces_configuration")) exit;
require_once("../fonctions/divers.php");
require_once("../lib/JSON.php");
if(!isset($action)) $action="";
if(!isset($lang)) $lang=$_SESSION["util"]->lang;
if(!isset($tabdisp)) $tabdisp="";
if(!isset($affiche)) $affiche="";
switch($action){
case 'modclassement' : modclassement($id, $type); break;
case 'modifier' : modifier($id, $lang, $titre, $chapo, $description, $tabdisp, $affiche); break;
case 'maj' : maj($id, $lang, $titre, $chapo, $description, $tabdisp, $affiche); break;
case 'ajouter' : ajouter($lang, $id, $titre, $chapo, $description, $tabdisp, $affiche, $ajoutrub); break;
case 'ajcaracdisp' : ajcaracdisp($id, $caracdisp, $lang); break;
case 'majcaracdisp' : majcaracdisp($id, $lang); break;
case 'supprimer' : supprimer($id); break;
case 'suppcaracdisp' : suppcaracdisp($caracdisp);
case 'modclassementcaracdisp' : modclassementcaracdisp($id, $cacacdispdesc, $type, $lang); break;
case 'setclassementcaracdisp' : setclassementcaracdisp($id, $caracdispdesc, $classement, $lang); break;
}
function modclassement($id, $type){
$car = new Caracteristique();
$car->charger($id);
$car->changer_classement($id, $type);
redirige("caracteristique.php");
}
function modifier($id, $lang, $titre, $chapo, $description, $tabdisp, $affiche){
if(!$lang) $lang=1;
$caracteristique = new Caracteristique();
$caracteristiquedesc = new Caracteristiquedesc();
$caracteristique->charger($id);
$res = $caracteristiquedesc->charger($caracteristique->id, $lang);
if(!$res){
$temp = new Caracteristiquedesc();
$temp->caracteristique=$caracteristique->id;
$temp->lang=$lang;
$temp->add();
$caracteristiquedesc->charger($caracteristique->id, $lang);
}
if($affiche!="") $caracteristique->affiche = 1;
else $caracteristique->affiche = 0;
$caracteristiquedesc->chapo = $chapo;
$caracteristiquedesc->description = $description;
$caracteristiquedesc->titre = $titre;
$caracteristiquedesc->chapo = str_replace("\n", "
", $caracteristiquedesc->chapo);
$caracteristiquedesc->description = str_replace("\n", "
", $caracteristiquedesc->description);
$caracteristique->maj();
$caracteristiquedesc->maj();
ActionsModules::instance()->appel_module("modcaracteristique", $caracteristique);
redirige($_SERVER['PHP_SELF'] . "?id=$id&lang=$lang");
}
function ajouter($lang, $id, $titre, $chapo, $description, $tabdisp, $affiche, $ajoutrub){
$caracteristique = new Caracteristique();
$caracteristique->charger($id);
if($caracteristique->id) return;
$caracteristique = new Caracteristique();
$query = "select max(classement) as maxClassement from $caracteristique->table";
$resul = $caracteristique->query($query);
$maxClassement = $resul ? $caracteristique->get_result($resul, 0, "maxClassement") : 0;
$caracteristique->id = $id;
if($affiche!="") $caracteristique->affiche = 1;
else $caracteristique->affiche = 0;
$caracteristique->classement = $maxClassement + 1;
$lastid = $caracteristique->add();
$caracteristique->id = $lastid;
$caracteristiquedesc = new Caracteristiquedesc();
$caracteristiquedesc->chapo = $chapo;
$caracteristiquedesc->description = $description;
$caracteristiquedesc->caracteristique = $lastid;
$caracteristiquedesc->lang = $lang;
$caracteristiquedesc->titre = $titre;
$caracteristiquedesc->chapo = str_replace("\n", "
", $caracteristiquedesc->chapo);
$caracteristiquedesc->description = str_replace("\n", "
", $caracteristiquedesc->description);
$caracteristiquedesc->add();
if (intval($ajoutrub) == 1)
{
$rubrique = new Rubrique();
$query = "select * from $rubrique->table";
$resul =$rubrique->query($query);
while($resul && $row = $rubrique->fetch_object($resul)){
$rubcaracteristique = new Rubcaracteristique();
$rubcaracteristique->rubrique = $row->id;
$rubcaracteristique->caracteristique = $lastid;
$rubcaracteristique->add();
}
}
ActionsModules::instance()->appel_module("ajcaracteristique", $caracteristique);
redirige($_SERVER['PHP_SELF'] . "?id=$lastid&lang=$lang");
}
function supprimer($id){
$caracteristique = new Caracteristique($id);
$caracteristique->delete();
ActionsModules::instance()->appel_module("suppcaracteristique", $caracteristique);
redirige("caracteristique.php");
}
function suppcaracdisp($caracdisp){
$tcaracdisp = new Caracdisp($caracdisp);
$tcaracdisp->delete();
ActionsModules::instance()->appel_module("suppcaracdisp", $tcaracdisp);
}
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);
}
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);
}
/* Tri des valeurs de Caracdisp */
function maxClassement($idcaracteristique, $lang)
{
$caracdispdesc = new Caracdispdesc();
$caracdisp = new Caracdisp();
$query = "
select
max(ddd.classement) as maxClassement
from
$caracdispdesc->table ddd
left join
$caracdisp->table dd on dd.id = ddd.caracdisp
where
lang=$lang
and
dd.caracteristique=$idcaracteristique
";
$resul = $caracdispdesc->query($query);
return $resul ? intval($caracdispdesc->get_result($resul, 0, "maxClassement")) : 0;
}
function modclassementcaracdisp($idcaracteristique, $idcaracdispdesc, $type, $lang)
{
$caracdispdesc = new Caracdispdesc();
if ($caracdispdesc->charger($idcaracdispdesc, $lang))
{
$remplace = new Caracdispdesc();
if ($type == "M")
{
$where = "classement<" . $caracdispdesc->classement . " order by classement desc";
}
else if ($type == "D")
{
$where = "classement>" . $caracdispdesc->classement . " order by classement";
}
$caracdisp = new Caracdisp();
$query = "
select
*
from
$caracdispdesc->table
where
lang=$lang
and
caracdisp in (select id from $caracdisp->table where caracteristique = $idcaracteristique)
and
$where
limit
0, 1
";
if ($remplace->getVars($query))
{
$sauv = $remplace->classement;
$remplace->classement = $caracdispdesc->classement;
$caracdispdesc->classement = $sauv;
$remplace->maj();
$caracdispdesc->maj();
}
}
}
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 = "
select
id
from
$caracdispdesc->table
where
lang=$lang
and
caracdisp in (select id from $caracdisp->table where caracteristique = $idcaracteristique)
and
classement BETWEEN $between
";
$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();
}
}
function ecrire_bloc_classement($idcaracteristique, $caracdispdesc, $lang, $existe) {
// On n'affiche rien si l'element n'existe pas encore
if ($existe) {
$cour = intval($caracdispdesc->classement);
$haut = $cour - 1;
$bas = $cour + 1;
$url = "caracteristique_modifier.php?action=modclassementcaracdisp&id=$idcaracteristique&cacacdispdesc=$caracdispdesc->id&lang=$lang&type=";
$res = '