Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2140 Rev 2142
Line 1... Line 1...
1
<?php
1
<?php
2
class Maintenance extends Script {
2
class Maintenance extends Script {
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'),
-
 
7
		'-doublon' => array(false, '1', "Id du mot clé qu'on veut réduire à un autre"),
6
		'-mc' => array(false, '1', 'Mot clef à chercher pour régénérer les machins')
8
		'-cible' => array(false, '1', "Id de l'autre mot clé")
Line 7... Line 9...
7
	);
9
	);
8
 
10
 
9
	public function __construct($script_nom, $parametres_cli) {
11
	public function __construct($script_nom, $parametres_cli) {
Line 44... Line 46...
44
					break;
46
					break;
45
				case 'reparerLiaisonsObsParMotsClesTexte' :
47
				case 'reparerLiaisonsObsParMotsClesTexte' :
46
					$mot_clef = $this->getParametre('mc');
48
					$mot_clef = $this->getParametre('mc');
47
					$this->reparerLiaisonsObsParMotsClesTexte($mot_clef);
49
					$this->reparerLiaisonsObsParMotsClesTexte($mot_clef);
48
					break;
50
					break;
-
 
51
				case 'reductionMotsClesImages' :
-
 
52
					$idDoublon = $this->getParametre('doublon');
-
 
53
					$idCible = $this->getParametre('cible');
-
 
54
					$this->reductionMotsClesImages($idDoublon, $idCible);
-
 
55
					break;
49
				default :
56
				default :
50
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
57
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
51
						"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
58
						"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
52
					throw new Exception($msg);
59
					throw new Exception($msg);
53
			}
60
			}
Line 392... Line 399...
392
			$requete_insertion .= "('".$l['id_element_lie']."', '".$l['id_mot_cle']."'),";
399
			$requete_insertion .= "('".$l['id_element_lie']."', '".$l['id_mot_cle']."'),";
393
		}
400
		}
394
		$requete_insertion = rtrim($requete_insertion, ',');
401
		$requete_insertion = rtrim($requete_insertion, ',');
395
		$insertion = $this->bdd->requeter($requete_insertion);
402
		$insertion = $this->bdd->requeter($requete_insertion);
396
	}
403
	}
-
 
404
 
-
 
405
	// Change toutes les associations images - mots_cles dont l'id mot_cle est $idDoublon, pour le remplacer par $idCible
-
 
406
	private function reductionMotsClesImages($idDoublon, $idCible) {
-
 
407
		$q1 = "SELECT id_element_lie FROM cel_mots_cles_images_liaison WHERE id_mot_cle = $idCible;";
-
 
408
		$r1 = $this->bdd->requeter($q1);
-
 
409
		$idsImages = array();
-
 
410
		foreach ($r1 as $r) {
-
 
411
			$idsImages[] = $r['id_element_lie'];
-
 
412
		}
-
 
413
 
-
 
414
		// On vire ceux qui ont le doublon mais qui ont aussi la cible
-
 
415
		$q2 = "DELETE FROM cel_mots_cles_images_liaison WHERE id_mot_cle = $idDoublon AND id_element_lie IN (" . implode(',', $idsImages) . ");";
-
 
416
		$r2 = $this->bdd->requeter($q2);
-
 
417
 
-
 
418
		// On convertit tous les doublons en cible
-
 
419
		$q3 = "UPDATE cel_mots_cles_images_liaison SET id_mot_cle = $idCible WHERE id_mot_cle = $idDoublon;";
-
 
420
		$r3 = $this->bdd->requeter($q3);
-
 
421
	}
397
}
422
}
398
?>
423
?>
399
424