* @copyright 2015 Tela-Botanica * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @version SVN: */ class Modification extends Cel { public $table_image = "cel_images"; public $table_obs = "cel_obs"; public function getRessource() { return $this->getElement(array()); } public function getElement($uid) { $id_utilisateur = (isset($_GET['id_utilisateur'])) ? $_GET['id_utilisateur'] : false; $mail = (isset($_GET['mail'])) ? $_GET['mail'] : false; $nouveau_mail = (isset($_GET['nouveau_mail'])) ? $_GET['nouveau_mail'] : false; if(!$mail || !$id_utilisateur) { $this->envoyer("false"); } $ancien_mail = $mail; $nouveau_mail = $nouveau_mail; // si le mail n'a pas changé, on ne change rien if($ancien_mail == $nouveau_mail) { $this->envoyer("OK"); return; } // Sinon on doit changer des trucs dans les obs et les images // Une clé existe sur ordre, id_utilisateur et courriel utilisateur // Décalage de l'ordre d'éventuelles observations déjà existantes $requete_decalage_ordre_obs_1 = "UPDATE ".$this->table_obs." SET ordre = ordre + 9999999 ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail); $requete_decalage_ordre_obs_2 = "UPDATE ".$this->table_obs." SET ordre = ordre + 19999999 ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); Cel::db()->executer($requete_decalage_ordre_obs_1); Cel::db()->executer($requete_decalage_ordre_obs_2); $requete_maj_mail_obs = "UPDATE ".$this->table_obs." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); Cel::db()->executer($requete_maj_mail_obs); $requete_maj_ordre_obs = "SELECT @ordval := 0; ". "UPDATE ".$this->table_obs." ". "SET ordre = (SELECT @ordval := @ordval + 1) ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". "ORDER BY date_creation "; Cel::db()->executerRequete($requete_maj_ordre_obs); // Décalage de l'ordre d'éventuelles images déjà existantes $requete_decalage_ordre_img_1 = "UPDATE ".$this->table_image." SET ordre = ordre + 9999999 ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail); $requete_decalage_ordre_img_2 = "UPDATE ".$this->table_image." SET ordre = ordre + 19999999 ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); Cel::db()->executer($requete_decalage_ordre_img_1); Cel::db()->executer($requete_decalage_ordre_img_2); $requete_maj_mail_img = "UPDATE ".$this->table_image." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); Cel::db()->executer($requete_maj_mail_img); $requete_maj_ordre_img = "SELECT @ordval := 0; ". "UPDATE ".$this->table_image." ". "SET ordre = (SELECT @ordval := @ordval + 1) ". "WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". "ORDER BY date_creation "; Cel::db()->executerRequete($requete_maj_ordre_img); $this->envoyer("OK"); return; } }