20,16 → 20,33 |
*/ |
class InventoryKeyWordList extends Cel { |
|
protected $suffix = ''; |
protected $suffixe = ''; |
protected $suffixe_table = null; |
protected $suffixe_champ = null; |
|
private function setChampsEtTablePourSuffixe($suffixe) { |
$this->suffixe = $suffixe; |
switch($suffixe) { |
case 'obs': |
$this->suffixe_table = '_obs'; |
$this->suffixe_champ = '_obs'; |
break; |
case 'images': |
$this->suffixe_table = '_images'; |
$this->suffixe_champ = '_image'; |
break; |
} |
} |
|
public function getElement($uid) { |
// Controle detournement utilisateur |
$this->suffix = '_'.$uid[0]; |
$id_utilisateur = $uid[1] ; |
$this->controleUtilisateur($uid[1]); |
|
$requete = 'SELECT mot_cle, id_mot_cle_obs, ce_mot_cle_obs_parent '. |
'FROM cel_mots_cles'.$this->suffix.' '. |
$this->setChampsEtTablePourSuffixe($uid[0]); |
|
$requete = 'SELECT mot_cle, id_mot_cle'.$this->suffixe_champ.', ce_mot_cle'.$this->suffixe_champ.'_parent '. |
'FROM cel_mots_cles'.$this->suffixe_table.' '. |
'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' '. |
'ORDER BY niveau '; |
|
47,9 → 64,10 |
} |
|
public function updateElement($uid, $pairs) { |
$this->suffix = '_'.$uid[0]; |
$id_utilisateur = $uid[1]; |
$this->controleUtilisateur($uid[1]); |
|
$this->setChampsEtTablePourSuffixe($uid[0]); |
|
$id_mot_cle = $pairs['id']; |
$action = $pairs['action']; |
58,13 → 76,13 |
$nouveau_nom = $pairs['motcle']; |
$nouvel_id_general = md5(mb_strtolower($nouveau_nom)); |
|
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET mot_cle = '.$this->proteger($nouveau_nom).' , '. |
' md5 = '.$this->proteger($nouvel_id_general).' '. |
'WHERE id_mot_cle_utilisateur = '.$this->proteger($id_mot_cle).' '. |
'WHERE id_mot_cle'.$this->suffixe_champ.' = '.$this->proteger($id_mot_cle).' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur) ; |
$reussite = $this->executer($requete); |
if ($reussite) { |
if ($reussite !== false) { |
echo 'OK'; |
} |
} else if ($action == 'deplacement') { |
105,7 → 123,9 |
|
$transaction_reussie_6 = $this->changerPere($id_mot_cle, $id_pere, $id_utilisateur); |
|
if ($transaction_reussie_1 && $transaction_reussie_2 && $transaction_reussie_3 && $transaction_reussie_4 && $transaction_reussie_5 && $transaction_reussie_6) { |
if ($transaction_reussie_1 !== false && $transaction_reussie_2 !== false && |
$transaction_reussie_3 !== false && $transaction_reussie_4 !== false && |
$transaction_reussie_5 !== false && $transaction_reussie_6 !== false) { |
$this->completerTransaction(); |
} else { |
$this->annulerTransaction(); |
118,7 → 138,7 |
// Controle detournement utilisateur |
$this->controleUtilisateur($pairs['identifiant']); |
|
$this->suffix = '_'.$pairs['mode']; |
$this->setChampsEtTablePourSuffixe($pairs['mode']); |
$id_utilisateur = $pairs['identifiant']; |
$mot_cle = $pairs['motcle']; |
|
139,7 → 159,7 |
|
$transaction_reussie_1 = $this->decalerBornesPlusDeux($borne_pere,$id_utilisateur) ? true : false; |
|
$requete = 'INSERT INTO cel_mots_cles'.$this->suffix.' '. |
$requete = 'INSERT INTO cel_mots_cles'.$this->suffixe_table.' '. |
'VALUES ( '. |
$this->proteger($id_mot_cle).', '. |
$this->proteger($id_utilisateur).', '. |
161,7 → 181,7 |
|
public function deleteElement($uid) { |
|
$this->suffix = '_'.$uid[0]; |
$this->setChampsEtTablePourSuffixe($uid[0]); |
$id_utilisateur = $uid[1]; |
$id_mot_cle = $uid[2]; |
|
172,7 → 192,7 |
$bg = $bornes['bg']; |
$bd = $bornes['bd']; |
|
$requete = 'DELETE FROM cel_mots_cles'.$this->suffix.' '. |
$requete = 'DELETE FROM cel_mots_cles'.$this->suffixe_table.' '. |
'WHERE bg >= '.$this->proteger($bg).' '. |
' AND bd <= '.$this->proteger($bd).' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
180,7 → 200,7 |
$transaction_reussie_1 = $this->executer($requete); |
$transaction_reussie_2 = $this->decalerBornesMoinsIntervalle($bg, $bd, $id_utilisateur) ? true : false; |
|
if ($transaction_reussie_1 && $transaction_reussie_2) { |
if ($transaction_reussie_1 !== false && $transaction_reussie_2 !== false) { |
$this->completerTransaction(); |
} else { |
$this->annulerTransaction(); |
189,7 → 209,7 |
|
private function ajouterMotCleRacine($id) { |
$requete = 'SELECT COUNT(*) as nb_mc '. |
'FROM cel_mots_cles'.$this->suffix.' '. |
'FROM cel_mots_cles'.$this->suffixe_table.' '. |
'WHERE ce_utilisateur = '.$this->proteger($id).' '; |
$resultat = $this->requeter($requete); |
|
196,22 → 216,22 |
if (is_array($resultat) && count($resultat) > 0) { |
$valeurs = $resultat[0]['nb_mc']; |
|
switch ($this->suffix) { |
case '_obs' : |
switch ($this->suffixe) { |
case 'obs' : |
$nom_racine = 'Projets'; |
$id_racine = 'racine_obs'; |
break; |
case '_images' : |
case 'images' : |
$nom_racine = 'Mots clés'; |
$id_racine = 'racine'; |
break; |
default: |
$nom_racine = $this->suffix; |
$id_racine = $this->suffix; |
$nom_racine = $this->suffixe; |
$id_racine = $this->suffixe; |
} |
|
if ($valeurs == 0) { |
$requete = 'INSERT INTO cel_mots_cles'.$this->suffix.' '. |
$requete = 'INSERT INTO cel_mots_cles'.$this->suffixe_table.' '. |
'VALUES ("'.$nom_racine.'", 1, 2, "'.$id_racine.'", "'.$id_racine.'", '.$this->proteger($id).', "", 0) '; |
$this->executer($requete); |
} |
266,8 → 286,8 |
*/ |
private function calculerBornesEtNiveau($id_mot_cle,$id_utilisateur) { |
$requete = 'SELECT bd, bg, niveau '. |
'FROM cel_mots_cles'.$this->suffix.' '. |
'WHERE id_mot_cle_utilisateur = '.$this->proteger($id_mot_cle).' '. |
'FROM cel_mots_cles'.$this->suffixe_table.' '. |
'WHERE id_mot_cle'.$this->suffixe_champ.' = '.$this->proteger($id_mot_cle).' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
$resultat = $this->requeter($requete); |
|
283,19 → 303,19 |
*/ |
private function decalerBornesPlusDeux($valeur, $id_utilisateur) { |
// Décalage borne droite |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET bd = bd + 2 WHERE bd >= '.$this->proteger($valeur).' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bd = bd + 2 WHERE bd >= '.$valeur.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
$reussi_1 = $this->executer($requete); |
|
// Décalage borne gauche |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bg = bg + 2 '. |
'WHERE bg >= '.$this->proteger($valeur).' '. |
'WHERE bg >= '.$valeur.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
$reussi_2 = $this->executer($requete); |
|
return $reussi_1 && $reussi_2; |
return $reussi_1 !== false && $reussi_2 !== false; |
} |
|
/** |
305,20 → 325,20 |
$decalage = $bd - $bg + 1; |
|
// Décalage borne droite |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET bd = bd - '.$this->proteger($decalage).' '. |
'WHERE bd >= '.$this->proteger($bg).' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bd = bd - '.$decalage.' '. |
'WHERE bd >= '.$bg.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
$reussi_1 = $this->executer($requete); |
|
// Décalage borne gauche |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET bg = bg - '.$this->proteger($decalage).' '. |
'WHERE bg > '.$this->proteger($bg).' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bg = bg - '.$decalage.' '. |
'WHERE bg > '.$bg.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
$reussi_2 = $this->executer($requete); |
|
return $reussi_1 && $reussi_2; |
return $reussi_1 !== false && $reussi_2 !== false; |
} |
|
/** |
328,20 → 348,20 |
$decalage = $largeur; |
|
// decalage borne droite |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET bd = bd + '.$this->proteger($decalage).' '. |
'WHERE bd >= '.$this->proteger($valeur_bornes).' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bd = bd + '.$decalage.' '. |
'WHERE bd >= '.$valeur_bornes.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
$reussi_1 = $this->executer($requete); |
|
// decalage borne gauche |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET bg = bg + '.$this->proteger($decalage).' '. |
'WHERE bg >= '.$this->proteger($valeur_bornes).' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bg = bg + '.$decalage.' '. |
'WHERE bg >= '.$valeur_bornes.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
$reussi_2 = $this->executer($requete); |
|
return $reussi_1 && $reussi_2; |
return $reussi_1 !== false && $reussi_2 !== false; |
} |
|
/** |
348,11 → 368,11 |
* Inverse les bornes d'un intervalle pour l'exclure des modifications sur l'arbre sans changer la hiérarchie. |
*/ |
private function exclureIntervalle($bg, $bd, $id_utilisateur) { |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET bd = bd - '.$this->proteger($bd).' - 1 , '. |
' bg = bg - '.$this->proteger($bd).' - 1 '. |
'WHERE bd <= '.$this->proteger($bd).' '. |
' AND bg >= '.$this->proteger($bg).' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bd = bd - '.$bd.' - 1 , '. |
' bg = bg - '.$bd.' - 1 '. |
'WHERE bd <= '.$bd.' '. |
' AND bg >= '.$bg.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
|
return $this->executer($requete); |
364,12 → 384,12 |
*/ |
private function inclureIntervalle($bg, $bd, $decalage,$modif_niveau, $id_utilisateur) { |
|
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET bg = bg + '.$this->proteger($decalage).' , '. |
' bd = bd + '.$this->proteger($decalage).', '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET bg = bg + '.$decalage.' , '. |
' bd = bd + '.$decalage.', '. |
' niveau = niveau + '.$modif_niveau.' '. |
' WHERE bg >= '.$this->proteger($bg).' '. |
' AND bd <= '.$this->proteger($bd).' '. |
' WHERE bg >= '.$bg.' '. |
' AND bd <= '.$bd.' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
|
return $this->executer($requete); |
376,9 → 396,9 |
} |
|
private function changerPere($id_mot_cle, $id_pere, $id_utilisateur) { |
$requete = 'UPDATE cel_mots_cles'.$this->suffix.' '. |
'SET ce_mot_cle_utilisateur_parent = '.$this->proteger($id_pere).' '. |
'WHERE id_mot_cle_utilisateur = '.$this->proteger($id_mot_cle).' '. |
$requete = 'UPDATE cel_mots_cles'.$this->suffixe_table.' '. |
'SET ce_mot_cle_'.$this->suffixe_champ.'_parent = '.$this->proteger($id_pere).' '. |
'WHERE id_mot_cle'.$this->suffixe_champ.' = '.$this->proteger($id_mot_cle).' '. |
' AND ce_utilisateur = '.$this->proteger($id_utilisateur).' '; |
|
return $this->executer($requete); |