Subversion Repositories eFlore/Applications.cel

Rev

Rev 2184 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2184 Rev 2193
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;
-
 
68
				case 'reduireEtNormaliserMotsClesImages' :
-
 
69
					// ex: cli.php maintenance -a reduireEtNormaliserMotsClesImages
-
 
70
					$this->reduireEtNormaliserMotsClesImages();
-
 
71
					break;
63
				default :
72
				default :
64
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
73
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
65
						"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
74
						"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
66
					throw new Exception($msg);
75
					throw new Exception($msg);
67
			}
76
			}
68
		} catch (Exception $e) {
77
		} catch (Exception $e) {
69
			$this->traiterErreur($e->getMessage());
78
			$this->traiterErreur($e->getMessage());
70
		}
79
		}
71
	}
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 72... Line 90...
72
 
90
 
73
	// 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
74
	// vide, suite à une erreur
92
	// vide, suite à une erreur
75
	protected function regenererMotsClesTexteImages($tout = false) {
93
	protected function regenererMotsClesTexteImages($tout = false) {
Line 438... Line 456...
438
	}
456
	}
Line 439... Line 457...
439
 
457
 
440
	// Parcourt l'arbre des mots-cles images de l'utilisateur dont l'id est $idUtilisateur, et réduit tous ceux dont le chemin
458
	// Parcourt l'arbre des mots-cles images de l'utilisateur dont l'id est $idUtilisateur, et réduit tous ceux dont le chemin
441
	// n'est pas unique
459
	// n'est pas unique
442
	private function reductionMotsClesImagesUtilisateur($idUtilisateur) {
460
	private function reductionMotsClesImagesUtilisateur($idUtilisateur) {
-
 
461
		$q1 = "SELECT id_mot_cle, chemin, mot_cle, (LOCATE(mot_cle, chemin) != 0) as valide FROM cel_arbre_mots_cles_images"
-
 
462
			. " WHERE id_utilisateur = '$idUtilisateur'"
443
		$q1 = "SELECT id_mot_cle, chemin FROM cel_arbre_mots_cles_images WHERE id_utilisateur = $idUtilisateur;";
463
			. " ORDER BY chemin ASC, valide DESC;";
Line 444... Line 464...
444
		$r1 = $this->bdd->requeter($q1);
464
		$r1 = $this->bdd->requeter($q1);
445
 
465
 
446
		$idsMotsCles = array();
466
		$idsMotsCles = array();
Line 466... Line 486...
466
				}
486
				}
467
			}
487
			}
468
		}
488
		}
469
		echo "$aTraiter groupes ont été réduits" . PHP_EOL;
489
		echo "$aTraiter groupes ont été réduits" . PHP_EOL;
470
	}
490
	}
-
 
491
	
-
 
492
	private function reduireEtNormaliserMotsClesImages($util=null) {
-
 
493
		$this->reduireEtNormaliserMotsCles('cel_arbre_mots_cles_images', 'chemin', 'images', $util);
-
 
494
	}
-
 
495
	
-
 
496
	private function reduireEtNormaliserMotsCles($table, $colonne, $mode = "images", $util=null) {		
-
 
497
		echo "Suppression des accents dans la table $table, colonne $colonne ...";
-
 
498
		$this->supprimerAccents($table, $colonne, $util);
-
 
499
		echo "effectuée \n";
-
 
500
		echo "Suppression des majuscules dans la table $table, colonne $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";
-
 
506
			$this->reductionMotsClesImagesUtilisateur($util);
-
 
507
		} else {
-
 
508
			echo "Réduction de tous les mots clés $mode \n";
-
 
509
			$req_utilisateurs = "SELECT DISTINCT id_utilisateur FROM ".$table;
-
 
510
			$utilisateurs = $this->bdd->recupererTous($req_utilisateurs);
-
 
511
			
-
 
512
			foreach($utilisateurs as $utilisateur) {
-
 
513
				echo "Utilisateur en cours de traitement : ".$utilisateur['id_utilisateur']." \n";
-
 
514
				if($mode == "images") {
-
 
515
					$this->reductionMotsClesImagesUtilisateur($utilisateur['id_utilisateur']);
-
 
516
				} else {
-
 
517
					//TODO: créer cette fonction
-
 
518
					// $this->reductionMotsClesObsUtilisateur($utilisateur['id_utilisateur']);
-
 
519
				}
-
 
520
			}
-
 
521
		}
-
 
522
		echo "Fin de la réduction des mots clés $mode \n";
-
 
523
	}
-
 
524
	
-
 
525
	private function supprimerMajuscules($table, $colonne, $util=null) {
-
 
526
		$requete = "UPDATE ".$table." SET ".$colonne." = LOWER(".$colonne.")";
-
 
527
		if ($util !== null) {
-
 
528
			$requete .= " WHERE id_utilisateur = $util";
-
 
529
		}
-
 
530
		$this->bdd->requeter($requete); 
-
 
531
	}
-
 
532
	
-
 
533
	private function supprimerAccents($table, $colonne, $util=null) {
-
 
534
		
-
 
535
		$requetes = array(
-
 
536
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Š','S')",
-
 
537
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'š','s')",
-
 
538
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ð','Dj')",
-
 
539
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ž','Z')",
-
 
540
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ž','z')",
-
 
541
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'À','A')",
-
 
542
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Á','A')",
-
 
543
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Â','A')",
-
 
544
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ã','A')",
-
 
545
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ä','A')",
-
 
546
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Å','A')",
-
 
547
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Æ','A')",
-
 
548
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ç','C')",
-
 
549
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'È','E')",
-
 
550
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'É','E')",
-
 
551
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ê','E')",
-
 
552
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ë','E')",
-
 
553
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ì','I')",
-
 
554
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Í','I')",
-
 
555
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Î','I')",
-
 
556
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ï','I')",
-
 
557
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ñ','N')",
-
 
558
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ò','O')",
-
 
559
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ó','O')",
-
 
560
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ô','O')",
-
 
561
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Õ','O')",
-
 
562
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ö','O')",
-
 
563
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ø','O')",
-
 
564
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ù','U')",
-
 
565
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ú','U')",
-
 
566
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Û','U')",
-
 
567
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ü','U')",
-
 
568
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Ý','Y')",
-
 
569
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Þ','B')",
-
 
570
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ß','Ss')",
-
 
571
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'à','a')",
-
 
572
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'á','a')",
-
 
573
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'â','a')",
-
 
574
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ã','a')",
-
 
575
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ä','a')",
-
 
576
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'å','a')",
-
 
577
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'æ','a')",
-
 
578
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ç','c')",
-
 
579
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'è','e')",
-
 
580
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'é','e')",
-
 
581
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ê','e')",
-
 
582
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ë','e')",
-
 
583
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ì','i')",
-
 
584
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'í','i')",
-
 
585
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'î','i')",
-
 
586
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ï','i')",
-
 
587
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ð','o')",
-
 
588
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ñ','n')",
-
 
589
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ò','o')",
-
 
590
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ó','o')",
-
 
591
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ô','o')",
-
 
592
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'õ','o')",
-
 
593
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ö','o')",
-
 
594
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ø','o')",
-
 
595
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ù','u')",
-
 
596
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ú','u')",
-
 
597
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'û','u')",
-
 
598
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ý','y')",
-
 
599
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ý','y')",
-
 
600
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'þ','b')",
-
 
601
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ÿ','y')",
-
 
602
			"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ƒ','f')",
-
 
603
		);
-
 
604
		
-
 
605
		foreach($requetes as $requete) {
-
 
606
			if ($util !== null) {
-
 
607
				$requete .= " WHERE id_utilisateur = $util";
-
 
608
			}
-
 
609
			$this->bdd->requeter($requete);
-
 
610
		}
-
 
611
	}
471
}
612
}
472
?>
613
?>
473
614