Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2141 → Rev 2142

/trunk/scripts/modules/maintenance/Maintenance.php
3,7 → 3,9
 
protected $bdd;
protected $parametres_autorises = array(
'-mc' => array(false, '1', 'Mot clef à chercher pour régénérer les machins')
'-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"),
'-cible' => array(false, '1', "Id de l'autre mot clé")
);
 
public function __construct($script_nom, $parametres_cli) {
46,6 → 48,11
$mot_clef = $this->getParametre('mc');
$this->reparerLiaisonsObsParMotsClesTexte($mot_clef);
break;
case 'reductionMotsClesImages' :
$idDoublon = $this->getParametre('doublon');
$idCible = $this->getParametre('cible');
$this->reductionMotsClesImages($idDoublon, $idCible);
break;
default :
$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
394,5 → 401,23
$requete_insertion = rtrim($requete_insertion, ',');
$insertion = $this->bdd->requeter($requete_insertion);
}
 
// Change toutes les associations images - mots_cles dont l'id mot_cle est $idDoublon, pour le remplacer par $idCible
private function reductionMotsClesImages($idDoublon, $idCible) {
$q1 = "SELECT id_element_lie FROM cel_mots_cles_images_liaison WHERE id_mot_cle = $idCible;";
$r1 = $this->bdd->requeter($q1);
$idsImages = array();
foreach ($r1 as $r) {
$idsImages[] = $r['id_element_lie'];
}
 
// On vire ceux qui ont le doublon mais qui ont aussi la cible
$q2 = "DELETE FROM cel_mots_cles_images_liaison WHERE id_mot_cle = $idDoublon AND id_element_lie IN (" . implode(',', $idsImages) . ");";
$r2 = $this->bdd->requeter($q2);
 
// On convertit tous les doublons en cible
$q3 = "UPDATE cel_mots_cles_images_liaison SET id_mot_cle = $idCible WHERE id_mot_cle = $idDoublon;";
$r3 = $this->bdd->requeter($q3);
}
}
?>