Subversion Repositories eFlore/Applications.cel

Rev

Rev 2191 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2191 Rev 2192
Line 3... Line 3...
3
 
3
 
4
	protected $bdd;
4
	protected $bdd;
5
	protected $parametres_autorises = array(
5
	protected $parametres_autorises = array(
6
		'-mc' => array(false, '1', 'Mot clef à chercher pour régénérer les machins'),
6
		'-mc' => array(false, '1', 'Mot clef à chercher pour régénérer les machins'),
7
		'-doublon' => array(false, '1', "Id du mot clé qu'on veut réduire à un autre"),
7
		'-doublon' => array(false, '1', "Id du mot clé qu'on veut réduire à un autre"),
8
		'-util' => array(false, '1', "Id de l'utilisateur"),
8
		'-util' => array(false, null, "Id de l'utilisateur"),
9
		'-cible' => array(false, '1', "Id de l'autre mot clé")
9
		'-cible' => array(false, '1', "Id de l'autre mot clé")
Line 10... Line 10...
10
	);
10
	);
11
 
11
 
Line 55... Line 55...
55
					$idCible = $this->getParametre('cible');
55
					$idCible = $this->getParametre('cible');
56
					$this->reductionMotsClesImages($idDoublon, $idCible);
56
					$this->reductionMotsClesImages($idDoublon, $idCible);
57
					break;
57
					break;
58
				case 'reductionMotsClesImagesUtil' :
58
				case 'reductionMotsClesImagesUtil' :
59
					// ex: cli.php maintenance -a reductionMotsClesImagesUtil -util 6865
59
					// ex: cli.php maintenance -a reductionMotsClesImagesUtil -util 6865
60
					$idUtilisateur = $this->getParametre('util');
60
					$idUtilisateur = $this->obtenirParametreIntObligatoirePourMethode('util');
61
					$this->reductionMotsClesImagesUtilisateur($idUtilisateur);
61
					$this->reductionMotsClesImagesUtilisateur($idUtilisateur);
62
					break;
62
					break;
-
 
63
				case 'reduireEtNormaliserMotsClesImagesUtil' :
-
 
64
					// ex: cli.php maintenance -a reduireEtNormaliserMotsClesImages -util 6865
-
 
65
					$idUtilisateur = $this->obtenirParametreIntObligatoirePourMethode('util');
-
 
66
					$this->reduireEtNormaliserMotsClesImages($idUtilisateur);
-
 
67
					break;
63
				case 'reduireEtNormaliserMotsClesImages' :
68
				case 'reduireEtNormaliserMotsClesImages' :
64
					// ex: cli.php maintenance -a reduireEtNormaliserMotsClesImages
69
					// ex: cli.php maintenance -a reduireEtNormaliserMotsClesImages
65
					$this->reduireEtNormaliserMotsClesImages();
70
					$this->reduireEtNormaliserMotsClesImages();
66
					break;
71
					break;
67
				default :
72
				default :
Line 71... Line 76...
71
			}
76
			}
72
		} catch (Exception $e) {
77
		} catch (Exception $e) {
73
			$this->traiterErreur($e->getMessage());
78
			$this->traiterErreur($e->getMessage());
74
		}
79
		}
75
	}
80
	}
-
 
81
	
-
 
82
	private function obtenirParametreIntObligatoirePourMethode($param) {
-
 
83
		$param_val = $this->getParametre($param);
-
 
84
		if(!$param_val || !is_numeric($param_val)) {
-
 
85
			$msg = "Erreur : le paramètre $param est obligatoire pour cette méthode et doit être un entier \n";
-
 
86
			throw new Exception($msg);
-
 
87
		}
-
 
88
		return $param_val;
-
 
89
	}
Line 76... Line 90...
76
 
90
 
77
	// Régénère le champ "mots_cles_texte" pour toutes les images ayant des mots clés mais ayant ce champ
91
	// Régénère le champ "mots_cles_texte" pour toutes les images ayant des mots clés mais ayant ce champ
78
	// vide, suite à une erreur
92
	// vide, suite à une erreur
79
	protected function regenererMotsClesTexteImages($tout = false) {
93
	protected function regenererMotsClesTexteImages($tout = false) {
Line 473... Line 487...
473
			}
487
			}
474
		}
488
		}
475
		echo "$aTraiter groupes ont été réduits" . PHP_EOL;
489
		echo "$aTraiter groupes ont été réduits" . PHP_EOL;
476
	}
490
	}
Line 477... Line 491...
477
	
491
	
478
	private function reduireEtNormaliserMotsClesImages() {
492
	private function reduireEtNormaliserMotsClesImages($util=null) {
479
		$this->reduireEtNormaliserMotsCles('cel_arbre_mots_cles_images', 'chemin', 'images');
493
		$this->reduireEtNormaliserMotsCles('cel_arbre_mots_cles_images', 'chemin', 'images', $util);
Line 480... Line 494...
480
	}
494
	}
481
	
495
	
482
	private function reduireEtNormaliserMotsCles($table, $colonne, $mode = "images") {		
496
	private function reduireEtNormaliserMotsCles($table, $colonne, $mode = "images", $util=null) {		
483
		echo "Suppression des accents dans la table $table, colonne $colonne ...";
497
		echo "Suppression des accents dans la table $table, colonne $colonne ...";
484
		$this->supprimerAccents($table, $colonne);
498
		$this->supprimerAccents($table, $colonne, $util);
485
		echo "effectuée \n";
499
		echo "effectuée \n";
486
		echo "Suppression des majuscules dans la table $table, colonne $colonne ...";
500
		echo "Suppression des majuscules dans la table $table, colonne $colonne ...";
487
		$this->supprimerMajuscules($table, $colonne);
501
		$this->supprimerMajuscules($table, $colonne, $util);
-
 
502
		echo "effectuée \n";
-
 
503
		echo "\n";
-
 
504
		if ($util !== null) {
-
 
505
			echo "Réduction de tous les mots clés $mode de l'utilisateur $util\n";
488
		echo "effectuée \n";
506
			$this->reductionMotsClesImagesUtilisateur($util);
489
		echo "\n";
507
		} else {
490
		echo "Réduction de tous les mots clés $mode \n";
508
			echo "Réduction de tous les mots clés $mode \n";
491
		$req_utilisateurs = "SELECT DISTINCT id_utilisateur FROM ".$table;
509
			$req_utilisateurs = "SELECT DISTINCT id_utilisateur FROM ".$table;
492
		$utilisateurs = $this->bdd->recupererTous($req_utilisateurs);
510
			$utilisateurs = $this->bdd->recupererTous($req_utilisateurs);
493
		
511
			
494
		foreach($utilisateurs as $utilisateur) {
512
			foreach($utilisateurs as $utilisateur) {
495
			echo "Utilisateur en cours de traitement : ".$utilisateur['id_utilisateur']." \n";
513
				echo "Utilisateur en cours de traitement : ".$utilisateur['id_utilisateur']." \n";
496
			if($mode == "images") {
514
				if($mode == "images") {
497
				$this->reductionMotsClesImagesUtilisateur($utilisateur['id_utilisateur']);
515
					$this->reductionMotsClesImagesUtilisateur($utilisateur['id_utilisateur']);
498
			} else {
516
				} else {
-
 
517
					//TODO: créer cette fonction
499
				//TODO: créer cette fonction
518
					// $this->reductionMotsClesObsUtilisateur($utilisateur['id_utilisateur']);
500
				// $this->reductionMotsClesObsUtilisateur($utilisateur['id_utilisateur']);
519
				}
501
			}
520
			}
502
		}
521
		}
Line 503... Line 522...
503
		echo "Fin de la réduction des mots clés $mode \n";
522
		echo "Fin de la réduction des mots clés $mode \n";
504
	}
523
	}
-
 
524
	
-
 
525
	private function supprimerMajuscules($table, $colonne, $util=null) {
-
 
526
		$requete = "UPDATE ".$table." SET ".$colonne." = LOWER(".$colonne.")";
505
	
527
		if ($util !== null) {
506
	private function supprimerMajuscules($table, $colonne) {
528
			$requete .= " WHERE id_utilisateur = $util";
Line 507... Line 529...
507
		$requete = "UPDATE ".$table." SET ".$colonne." = LOWER(".$colonne.")";
529
		}
Line 508... Line 530...
508
		$this->bdd->requeter($requete); 
530
		$this->bdd->requeter($requete); 
509
	}
531
	}
510
	
532
	
511
	private function supprimerAccents($table, $colonne) {
533
	private function supprimerAccents($table, $colonne, $util=null) {
Line 579... Line 601...
579
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ÿ','y')",
601
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ÿ','y')",
580
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ƒ','f')",
602
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ƒ','f')",
581
		);
603
		);
Line 582... Line 604...
582
		
604
		
-
 
605
		foreach($requetes as $requete) {
-
 
606
			if ($util !== null) {
-
 
607
				$requete .= " WHERE id_utilisateur = $util";
583
		foreach($requetes as $requete) {
608
			}
584
			$this->bdd->requeter($requete);
609
			$this->bdd->requeter($requete);
585
		}
610
		}
586
	}
611
	}
587
}
612
}
588
?>
613
?>