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(); } }
/** * * increment or decrement the current caracdispdesc rank. * * @param int $idcaracdispdesc caracdisdesc id to modify * @param sting $type M for increase, D pour decrease rank * @param int $lang current lang */ function modClassementCaracdisp($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 = "\n select\n *\n from\n {$caracdispdesc->table}\n where\n lang={$lang}\n and\n caracdisp in (select id from {$caracdisp->table} where caracteristique = " . $this->id . ")\n and\n {$where}\n limit\n 0, 1\n "; if ($remplace->getVars($query)) { $sauv = $remplace->classement; $remplace->classement = $caracdispdesc->classement; $caracdispdesc->classement = $sauv; $remplace->maj(); $caracdispdesc->maj(); } } redirige("caracteristique_modifier.php?id=" . $this->id . "&lang=" . $lang); }