Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2191 → Rev 2192

/trunk/scripts/modules/maintenance/Maintenance.php
5,7 → 5,7
protected $parametres_autorises = array(
'-mc' => array(false, '1', 'Mot clef à chercher pour régénérer les machins'),
'-doublon' => array(false, '1', "Id du mot clé qu'on veut réduire à un autre"),
'-util' => array(false, '1', "Id de l'utilisateur"),
'-util' => array(false, null, "Id de l'utilisateur"),
'-cible' => array(false, '1', "Id de l'autre mot clé")
);
 
57,9 → 57,14
break;
case 'reductionMotsClesImagesUtil' :
// ex: cli.php maintenance -a reductionMotsClesImagesUtil -util 6865
$idUtilisateur = $this->getParametre('util');
$idUtilisateur = $this->obtenirParametreIntObligatoirePourMethode('util');
$this->reductionMotsClesImagesUtilisateur($idUtilisateur);
break;
case 'reduireEtNormaliserMotsClesImagesUtil' :
// ex: cli.php maintenance -a reduireEtNormaliserMotsClesImages -util 6865
$idUtilisateur = $this->obtenirParametreIntObligatoirePourMethode('util');
$this->reduireEtNormaliserMotsClesImages($idUtilisateur);
break;
case 'reduireEtNormaliserMotsClesImages' :
// ex: cli.php maintenance -a reduireEtNormaliserMotsClesImages
$this->reduireEtNormaliserMotsClesImages();
73,6 → 78,15
$this->traiterErreur($e->getMessage());
}
}
private function obtenirParametreIntObligatoirePourMethode($param) {
$param_val = $this->getParametre($param);
if(!$param_val || !is_numeric($param_val)) {
$msg = "Erreur : le paramètre $param est obligatoire pour cette méthode et doit être un entier \n";
throw new Exception($msg);
}
return $param_val;
}
 
// Régénère le champ "mots_cles_texte" pour toutes les images ayant des mots clés mais ayant ce champ
// vide, suite à une erreur
475,40 → 489,48
echo "$aTraiter groupes ont été réduits" . PHP_EOL;
}
private function reduireEtNormaliserMotsClesImages() {
$this->reduireEtNormaliserMotsCles('cel_arbre_mots_cles_images', 'chemin', 'images');
private function reduireEtNormaliserMotsClesImages($util=null) {
$this->reduireEtNormaliserMotsCles('cel_arbre_mots_cles_images', 'chemin', 'images', $util);
}
private function reduireEtNormaliserMotsCles($table, $colonne, $mode = "images") {
private function reduireEtNormaliserMotsCles($table, $colonne, $mode = "images", $util=null) {
echo "Suppression des accents dans la table $table, colonne $colonne ...";
$this->supprimerAccents($table, $colonne);
$this->supprimerAccents($table, $colonne, $util);
echo "effectuée \n";
echo "Suppression des majuscules dans la table $table, colonne $colonne ...";
$this->supprimerMajuscules($table, $colonne);
$this->supprimerMajuscules($table, $colonne, $util);
echo "effectuée \n";
echo "\n";
echo "Réduction de tous les mots clés $mode \n";
$req_utilisateurs = "SELECT DISTINCT id_utilisateur FROM ".$table;
$utilisateurs = $this->bdd->recupererTous($req_utilisateurs);
foreach($utilisateurs as $utilisateur) {
echo "Utilisateur en cours de traitement : ".$utilisateur['id_utilisateur']." \n";
if($mode == "images") {
$this->reductionMotsClesImagesUtilisateur($utilisateur['id_utilisateur']);
} else {
//TODO: créer cette fonction
// $this->reductionMotsClesObsUtilisateur($utilisateur['id_utilisateur']);
if ($util !== null) {
echo "Réduction de tous les mots clés $mode de l'utilisateur $util\n";
$this->reductionMotsClesImagesUtilisateur($util);
} else {
echo "Réduction de tous les mots clés $mode \n";
$req_utilisateurs = "SELECT DISTINCT id_utilisateur FROM ".$table;
$utilisateurs = $this->bdd->recupererTous($req_utilisateurs);
foreach($utilisateurs as $utilisateur) {
echo "Utilisateur en cours de traitement : ".$utilisateur['id_utilisateur']." \n";
if($mode == "images") {
$this->reductionMotsClesImagesUtilisateur($utilisateur['id_utilisateur']);
} else {
//TODO: créer cette fonction
// $this->reductionMotsClesObsUtilisateur($utilisateur['id_utilisateur']);
}
}
}
echo "Fin de la réduction des mots clés $mode \n";
}
private function supprimerMajuscules($table, $colonne) {
private function supprimerMajuscules($table, $colonne, $util=null) {
$requete = "UPDATE ".$table." SET ".$colonne." = LOWER(".$colonne.")";
if ($util !== null) {
$requete .= " WHERE id_utilisateur = $util";
}
$this->bdd->requeter($requete);
}
private function supprimerAccents($table, $colonne) {
private function supprimerAccents($table, $colonne, $util=null) {
$requetes = array(
"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Š','S')",
581,6 → 603,9
);
foreach($requetes as $requete) {
if ($util !== null) {
$requete .= " WHERE id_utilisateur = $util";
}
$this->bdd->requeter($requete);
}
}