| 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;
|
| - |
|
5 |
protected $parametres_autorises = array(
|
| - |
|
6 |
'-mc' => array(false, '1', 'Mot clef à chercher pour régénérer les machins')
|
| Line 4... |
Line 7... |
| 4 |
protected $bdd;
|
7 |
);
|
| 5 |
|
8 |
|
| 6 |
public function __construct($script_nom, $parametres_cli) {
|
9 |
public function __construct($script_nom, $parametres_cli) {
|
| 7 |
parent::__construct($script_nom, $parametres_cli);
|
10 |
parent::__construct($script_nom, $parametres_cli);
|
| Line 37... |
Line 40... |
| 37 |
$this->reparerLiaisonsOublieesObs();
|
40 |
$this->reparerLiaisonsOublieesObs();
|
| 38 |
break;
|
41 |
break;
|
| 39 |
case 'reparerLiaisonsOublieesImages' :
|
42 |
case 'reparerLiaisonsOublieesImages' :
|
| 40 |
$this->reparerLiaisonsOublieesImages();
|
43 |
$this->reparerLiaisonsOublieesImages();
|
| 41 |
break;
|
44 |
break;
|
| - |
|
45 |
case 'reparerLiaisonsObsParMotsClesTexte' :
|
| - |
|
46 |
$mot_clef = $this->getParametre('mc');
|
| - |
|
47 |
$this->reparerLiaisonsObsParMotsClesTexte($mot_clef);
|
| - |
|
48 |
break;
|
| 42 |
default :
|
49 |
default :
|
| 43 |
$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
|
50 |
$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
|
| 44 |
"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
|
51 |
"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
|
| 45 |
throw new Exception($msg);
|
52 |
throw new Exception($msg);
|
| 46 |
}
|
53 |
}
|
| Line 332... |
Line 339... |
| 332 |
$insertion = $this->bdd->requeter($requete_insertion);
|
339 |
$insertion = $this->bdd->requeter($requete_insertion);
|
| 333 |
$this->afficherAvancement("Liaisons insérées (par paquet de 800) ", 1);
|
340 |
$this->afficherAvancement("Liaisons insérées (par paquet de 800) ", 1);
|
| 334 |
}
|
341 |
}
|
| 335 |
echo "\n";
|
342 |
echo "\n";
|
| 336 |
}
|
343 |
}
|
| - |
|
344 |
|
| - |
|
345 |
private function reparerLiaisonsObsParMotsClesTexte($mot_cle_texte_recherche) {
|
| - |
|
346 |
$ancienne_table_obs = Config::get('table_obs_recup');
|
| - |
|
347 |
$requete_anciens_mots_cles_texte = "SELECT ce_utilisateur, id_observation, mots_cles_texte ".
|
| - |
|
348 |
"FROM ".$ancienne_table_obs." WHERE mots_cles_texte LIKE '%".$mot_cle_texte_recherche."%'";
|
| - |
|
349 |
$obs_a_mot_cle = $this->bdd->recupererTous($requete_anciens_mots_cles_texte);
|
| - |
|
350 |
|
| - |
|
351 |
$requete_nouveaux_mots_cle = "SELECT * FROM cel_arbre_mots_cles_obs ".
|
| - |
|
352 |
"WHERE id_utilisateur IN ".
|
| - |
|
353 |
"(SELECT id_utilisateur FROM ".$ancienne_table_obs." ".
|
| - |
|
354 |
"WHERE mots_cles_texte LIKE '%".$mot_cle_texte_recherche."%')";
|
| - |
|
355 |
$nouveaux_mots_cles = $this->bdd->recupererTous($requete_nouveaux_mots_cle);
|
| - |
|
356 |
|
| - |
|
357 |
$mots_cles_indexes = array();
|
| - |
|
358 |
foreach($nouveaux_mots_cles as $mot_cle) {
|
| - |
|
359 |
$mots_cles_indexes[$mot_cle['id_utilisateur']][strtolower($mot_cle['mot_cle'])] = $mot_cle;
|
| - |
|
360 |
}
|
| - |
|
361 |
|
| - |
|
362 |
$liaisons_a_inserer = array();
|
| - |
|
363 |
$utilFoirax = 0;
|
| - |
|
364 |
$mcFoirax = 0;
|
| - |
|
365 |
foreach($obs_a_mot_cle as $obs) {
|
| - |
|
366 |
$mots_cles_texte_tab = explode(',', $obs['mots_cles_texte']);
|
| - |
|
367 |
$id_observation = $obs['id_observation'];
|
| - |
|
368 |
$id_utilisateur = $obs['ce_utilisateur'];
|
| - |
|
369 |
foreach($mots_cles_texte_tab as $mot_cle_t) {
|
| - |
|
370 |
if($mot_cle_t == $mot_cle_texte_recherche) {
|
| - |
|
371 |
if (isset($mots_cles_indexes[$id_utilisateur])) {
|
| - |
|
372 |
if (isset($mots_cles_indexes[$id_utilisateur][strtolower($mot_cle_t)])) {
|
| - |
|
373 |
$id_nouveau_mot_cle = $mots_cles_indexes[$id_utilisateur][strtolower($mot_cle_t)]['id_mot_cle'];
|
| - |
|
374 |
} else {
|
| - |
|
375 |
$mcFoirax++;
|
| - |
|
376 |
}
|
| - |
|
377 |
} else {
|
| - |
|
378 |
$utilFoirax++;
|
| - |
|
379 |
}
|
| - |
|
380 |
$liaisons_a_inserer[] = array('id_element_lie' => $id_observation, 'id_mot_cle' => $id_nouveau_mot_cle);
|
| - |
|
381 |
}
|
| - |
|
382 |
}
|
| - |
|
383 |
}
|
| - |
|
384 |
echo "Utilisateurs pas dans le tableau: $utilFoirax\n";
|
| - |
|
385 |
echo "Motf-clefs pas dans le tableau: $mcFoirax\n";
|
| - |
|
386 |
//echo '<pre>'.print_r($liaisons_a_inserer, true).'</pre>';
|
| - |
|
387 |
echo "Liaisons à insérer: " . count($liaisons_a_inserer) . " \n";
|
| - |
|
388 |
|
| - |
|
389 |
$requete_insertion = "INSERT IGNORE INTO cel_mots_cles_obs_liaison (id_element_lie, id_mot_cle) ".
|
| - |
|
390 |
"VALUES ";
|
| - |
|
391 |
foreach($liaisons_a_inserer as $l) {
|
| - |
|
392 |
$requete_insertion .= "('".$l['id_element_lie']."', '".$l['id_mot_cle']."'),";
|
| - |
|
393 |
}
|
| - |
|
394 |
$requete_insertion = rtrim($requete_insertion, ',');
|
| - |
|
395 |
$insertion = $this->bdd->requeter($requete_insertion);
|
| - |
|
396 |
}
|
| 337 |
}
|
397 |
}
|
| 338 |
?>
|
398 |
?>
|
| 339 |
|
399 |
|