Subversion Repositories eFlore/Applications.cel

Compare Revisions

Regard whitespace Rev 1181 → Rev 1184

/trunk/jrest/services/MigrationObs.php
119,7 → 119,6
echo "-------------------------------------------------------------------\n\n";
echo " ETAPE 1. Paramétrage ... \n\n";
echo "-------------------------------------------------------------------\n\n";
$this->getUtilisateurs();
$this->getMotsCles();
126,7 → 125,6
echo "-------------------------------------------------------------------\n\n";
echo " ETAPE 2. Migration des utilisateurs ... \n\n";
echo "-------------------------------------------------------------------\n\n";
$this->migrerUtilisateurs();
echo "-------------------------------------------------------------------\n\n";
138,6 → 136,7
echo " ETAPE 4. Migration des observations ... \n\n";
echo "-------------------------------------------------------------------\n\n";
$this->migrerObs();
$this->ordonnerObs();
echo "\n"."\n"."\n";
}
155,8 → 154,9
echo "\n-------------------------------------------------------------------\n";
echo "--SELECTION DES UTILISATEURS---------------------------------------\n\n";
$requete_selection_utilisateurs = 'SELECT U_ID as id, U_MAIL as mail, U_NAME as nom, U_SURNAME as prenom, U_PASSWD as pass FROM '.self::$bdd_utilisateurs.'.annuaire_tela';
$tableau_utilisateurs = $this->executerRequete($requete_selection_utilisateurs);
$requete = 'SELECT U_ID as id, U_MAIL as mail, U_NAME as nom, U_SURNAME as prenom, U_PASSWD as pass '.
'FROM '.self::$bdd_utilisateurs.'.annuaire_tela ';
$tableau_utilisateurs = $this->executerRequete($requete);
foreach( $tableau_utilisateurs as &$utilisateur) {
$this->tableau_utilisateurs[$utilisateur['mail']] = $utilisateur;
170,8 → 170,10
echo "\n-------------------------------------------------------------------\n";
echo "--SELECTION DES MOTS-CLES -----------------------------------------\n\n";
$requete_selection_mots_cles = 'SELECT cmc_id_proprietaire as id_utilisateur, cmc_id_mot_cle_utilisateur as id_mot_cle, cmc_mot_cle as mot_cle FROM cel_mots_cles_obs';
$tableau_mots_cles = $this->executerRequete($requete_selection_mots_cles);
$requete = 'SELECT cmc_id_proprietaire as id_utilisateur, cmc_id_mot_cle_utilisateur as id_mot_cle, '.
'cmc_mot_cle as mot_cle '.
'FROM cel_mots_cles_obs ';
$tableau_mots_cles = $this->executerRequete($requete);
 
foreach( $tableau_mots_cles as &$mot_cle) {
$this->tableau_mots_cles[$mot_cle['id_utilisateur']][$mot_cle['id_mot_cle']] = $mot_cle;
217,32 → 219,29
$nbTotal = 0;
$tabUtilisateurs = $this->tableau_utilisateurs;
while (!empty($tabUtilisateurs)) {
$requete_insertion_utilisateurs = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_utilisateurs '.
$requete = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_utilisateurs '.
'(id_utilisateur, prenom, nom, courriel, mot_de_passe) '.
'VALUES ';
$sous_requete_insertion = '';
$sous_requete = array();
$i = 0;
foreach ($tabUtilisateurs as $id => &$utilisateur) {
$i++;
if ($i == $pas) {
break;
}
$sous_requete_insertion .= '('.$this->proteger($utilisateur['id']).','.
$this->proteger($utilisateur['prenom']).','.
$this->proteger($utilisateur['nom']).','.
$prenom = self::formaterMotPremiereLettreChaqueMotEnMajuscule($utilisateur['prenom']);
$nom = self::formaterMotEnMajuscule($utilisateur['nom']);
$sous_requete[] = '('.$this->proteger($utilisateur['id']).','.
$this->proteger($prenom).','.
$this->proteger($nom).','.
$this->proteger($utilisateur['mail']).','.
$this->proteger($utilisateur['pass']).'),';
$this->proteger($utilisateur['pass']).')';
unset($tabUtilisateurs[$id]);
}
$requete = $requete.implode(',', $sous_requete);
$migration_utilisateurs = $this->executerRequeteSimple($requete);
$sous_requete_insertion = rtrim($sous_requete_insertion,',');
$requete_insertion_utilisateurs = $requete_insertion_utilisateurs.$sous_requete_insertion;
$migration_utilisateurs = $this->executerRequeteSimple($requete_insertion_utilisateurs);
if ($migration_utilisateurs) {
$nbTotal ++;
$this->afficherAvancement('Migration utilisateurs (par '.$pas.')', $nbTotal);
384,6 → 383,11
echo "\n---------------------------------------------------------------- OK\n\n";
}
private function ordonnerObs() {
$requete = 'ALTER TABLE cel_obs ORDER BY id_observation';
$this->executerRequeteSimple($requete);
}
 
private function traiterLigneObservation($obs) {
$nouvelle_obs = array();
424,7 → 428,7
}
private function traiterReferentiel($observation) {
return 'bdtfx_v1';
return 'bdnff:4.02';
}
private function traiterMotsClesTexte($ligne_observation) {
486,32 → 490,39
}
private function traiterPrenomUtilisateur($ligne_observation) {
$mail_observation = $ligne_observation['identifiant'];
$mail_observation = $ligne_observation['identifiant'];
$retour = $mail_observation;
$retour = '';
if (isset($this->tableau_utilisateurs[$mail_observation])) {
$retour = $this->tableau_utilisateurs[$mail_observation]['prenom'];
} else {
$retour = '';
$prenom = $this->tableau_utilisateurs[$mail_observation]['prenom'];
$retour = self::formaterMotPremiereLettreChaqueMotEnMajuscule($prenom);
}
return $retour;
}
private function traiterNomUtilisateur($ligne_observation) {
$mail_observation = $ligne_observation['identifiant'];
$retour = $mail_observation;
$retour = '';
if (isset($this->tableau_utilisateurs[$mail_observation])) {
$retour = $this->tableau_utilisateurs[$mail_observation]['nom'];
} else {
$retour = '';
$nom = $this->tableau_utilisateurs[$mail_observation]['nom'];
$retour = self::formaterMotEnMajuscule($nom);
}
return $retour;
}
public static function formaterMotPremiereLettreChaqueMotEnMajuscule($chaine, $encodage= 'UTF-8') {
$chaine = str_replace('-', ' - ', $chaine);
$chaine = mb_strtolower($chaine, $encodage);
$chaine = mb_convert_case($chaine, MB_CASE_TITLE, $encodage);
$chaine = str_replace(' - ', '-', $chaine);
return $chaine;
}
 
public static function formaterMotEnMajuscule($chaine, $encodage= 'UTF-8') {
return mb_convert_case($chaine, MB_CASE_UPPER, $encodage);
}
 
private function traiterZoneGeo($ligne_observation) {
$zone_geo = $ligne_observation['location'];
573,21 → 584,19
return $indice;
}
// Par défaut, on garde l'utilisateur tel quel (cas de la chaine de session des utilisateur anonymes)
private function renvoyerIdPourMigration($utilisateur) {
// si tout les test suivant échouent, on garde l'utilisateur tel quel
// (cas de la chaine de session des utilisateur anonymes)
$retour = $utilisateur;
// si le mail correspond a un utilisateur de la bdd
if (isset($this->tableau_utilisateurs[$utilisateur])) {
// on renvoie son id
$retour = $this->tableau_utilisateurs[$utilisateur]['id'];
} else {
} else if ($utilisateur != '') {
// sinon si c'est un mail inconnu, on garde le md5
if($this->mailValide($utilisateur)) {
$retour = md5($utilisateur);
}
}
return $retour;
}