New file |
0,0 → 1,115 |
<?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'utilisateur |
if ($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_valeur |
WHERE cmlv_ce_parent=1074 |
'; |
$pays = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC); |
|
$requete = ' |
SELECT cp_id_personne, cp_truk_recolte |
FROM coel_personne |
'; |
$resultat = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC); |
|
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_personne |
SET 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; |
|
} |
} |