Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Service fournissant la liste des commentaires et leurs informations.* Encodage en entrée : utf8* Encodage en sortie : utf8** @author Cyprien CLERC <cyprien@tela-botanica.org>* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>* @version $Id$* @copyright 2009*/class CoelCorrection extends Coel {public function getElement($params = array()) {// Identification de l'utilisateur$login = $this->config['coel']['correctionLogin'];$mdp = $this->config['coel']['correctionMdp'];// Récupération des paramètres d'identification$loginParam = $params[0];$mdpParam = $params[1];// Contrôle du non détournement de l'utilisateurif ($login == $loginParam && $mdp == $mdpParam) {$numeroCorrection = $params[2];switch($numeroCorrection) {case 1 : $this->correction0001($numeroCorrection);break;default : $this->noCorrection();}} else {$this->messages[] = "[ERREUR] Il faut etre identifie pour acceder a ce service";}}public function noCorrection() {$this->messages[] = "[ERREUR] Aucun numero de correction n'a ete fourni ou le numero fourni est invalide.";}/*-------------------------------------------------------------------*///-----------//// Correctif ////-----------///* Le champ 'pays' de la table 'personne' contient le nom de la liste au lieu de son id, il faut remédier à ça ! */private function correction0001($numeroCorrection) {$this->messages[] = "APPLICATION DE LA CORRECTION numero ".$numeroCorrection;// recuperation des pays$requete = 'SELECT cmlv_id_valeur, cmlv_nom FROM coel_meta_liste_valeurWHERE cmlv_ce_parent=1074';$pays = $this->bdd->query($requete)->fetchAll();$requete = 'SELECT cp_id_personne, cp_truk_recolteFROM coel_personne';$resultat = $this->bdd->query($requete)->fetchAll();for($i=0; $i<count($resultat); $i++) {if ($resultat[$i]['cp_truk_recolte'] != "") {$tabValeurs = explode(";", $resultat[$i]['cp_truk_recolte']);$nouvelleValeurChamp = "";for($j=0; $j<count($tabValeurs); $j++) {$tabType = explode("##", $tabValeurs[$j]);$type = trim($tabType[0]);if ($type != "" && !is_numeric($type)) {// recherche de l'id_valeur$trouve = false;$k=0;while(!$trouve && $k<count($pays)) {if ($pays[$k]['cmlv_nom'] == $tabType[0]) {$trouve = true;}else $k++;}$id_valeur = $pays[$k]['cmlv_id_valeur'];if ($trouve) $nouvelleValeurChamp .= str_replace($type, $id_valeur, $tabValeurs[$j]).";";}}$requeteUpdate = "UPDATE coel_personneSET cp_truk_recolte = '".$nouvelleValeurChamp."'WHERE cp_id_personne = '".$resultat[$i]['cp_id_personne']."'";if ($nouvelleValeurChamp != "") {echo $requeteUpdate.";<br>";$resultatRequeteUpdate = $this->bdd->query($requeteUpdate);if($resultatRequeteUpdate) $this->messages[] = "Correction effectuee.<br>";else $this->messages[] = "Echec lors de la correction.";}}}return true;}}