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); |
} |
} |