Line 133... |
Line 133... |
133 |
}
|
133 |
}
|
Line 134... |
Line 134... |
134 |
|
134 |
|
135 |
// Régénère le champ "mots_cles_texte" pour toutes les images ayant des mots clés mais ayant ce champ
|
135 |
// Régénère le champ "mots_cles_texte" pour toutes les images ayant des mots clés mais ayant ce champ
|
136 |
// vide, suite à une erreur
|
136 |
// vide, suite à une erreur
|
137 |
protected function regenererMotsClesTexteImages($tout = false) {
|
137 |
protected function regenererMotsClesTexteImages($tout = false) {
|
- |
|
138 |
$requete = 'SELECT id_image '.
|
138 |
$req = "SELECT id_image FROM cel_images WHERE ".
|
139 |
'FROM cel_images '.
|
139 |
"id_image IN (SELECT id_element_lie FROM cel_mots_cles_images_liaison)";
|
140 |
'WHERE id_image IN (SELECT id_element_lie FROM cel_mots_cles_images_liaison) ';
|
140 |
if(!$tout) {
|
141 |
if (!$tout) {
|
141 |
$req .= " AND (mots_cles_texte IS NULL OR mots_cles_texte='')";
|
142 |
$requete .= "AND (mots_cles_texte IS NULL OR mots_cles_texte = '') ";
|
142 |
}
|
143 |
}
|
143 |
$res = $this->bdd->recupererTous($req);
|
144 |
$resultats = $this->bdd->recupererTous($requete);
|
144 |
echo count($res) . " images trouvées\n";
|
145 |
echo count($resultats)." images trouvées\n";
|
- |
|
146 |
foreach ($resultats as $image) {
|
- |
|
147 |
$requete = 'UPDATE cel_images '.
|
- |
|
148 |
'SET mots_cles_texte = ('.
|
145 |
foreach ($res as $image) {
|
149 |
' SELECT GROUP_CONCAT(mot_cle) '.
|
- |
|
150 |
' FROM cel_arbre_mots_cles_images AS cm '.
|
146 |
$req = "UPDATE cel_images SET mots_cles_texte = (SELECT GROUP_CONCAT(mot_cle) FROM cel_arbre_mots_cles_images cm "
|
151 |
' INNER JOIN cel_mots_cles_images_liaison AS cml '.
|
- |
|
152 |
" ON (cml.id_mot_cle = cm.id_mot_cle AND cml.id_element_lie = '" . $image['id_image'] . "') ".
|
147 |
. "INNER JOIN cel_mots_cles_images_liaison cml ON cml.id_mot_cle = cm.id_mot_cle AND cml.id_element_lie = '" . $image['id_image'] . "') "
|
153 |
') '.
|
148 |
. "WHERE id_image = '" . $image['id_image'] . "'";
|
154 |
"WHERE id_image = '" . $image['id_image'] . "'";
|
149 |
$this->bdd->requeter($req);
|
155 |
$this->bdd->requeter($requete);
|
150 |
}
|
156 |
}
|
Line 151... |
Line 157... |
151 |
}
|
157 |
}
|
152 |
|
158 |
|
153 |
// Régénère le champ "mots_cles_texte" pour toutes les observations ayant des mots clés mais ayant ce champ
|
159 |
// Régénère le champ "mots_cles_texte" pour toutes les observations ayant des mots clés mais ayant ce champ
|
154 |
// vide, suite à une erreur
|
160 |
// vide, suite à une erreur
|
- |
|
161 |
protected function regenererMotsClesTexteObs($tout = false) {
|
155 |
protected function regenererMotsClesTexteObs($tout = false) {
|
162 |
$requete = 'SELECT id_observation '.
|
156 |
$req = "SELECT id_observation FROM cel_obs WHERE ".
|
163 |
'FROM cel_obs '.
|
157 |
"id_observation IN (SELECT id_element_lie FROM cel_mots_cles_obs_liaison)";
|
164 |
'WHERE id_observation IN (SELECT id_element_lie FROM cel_mots_cles_obs_liaison) ';
|
158 |
if(!$tout) {
|
165 |
if (!$tout) {
|
159 |
$req .= " AND (mots_cles_texte IS NULL OR mots_cles_texte='')";
|
166 |
$requete .= "AND (mots_cles_texte IS NULL OR mots_cles_texte = '')";
|
160 |
}
|
167 |
}
|
161 |
$res = $this->bdd->recupererTous($req);
|
168 |
$resultats = $this->bdd->recupererTous($requete);
|
162 |
echo count($res) . " observations trouvées\n";
|
169 |
echo count($resultats) . " observations trouvées\n";
|
163 |
foreach ($res as $image) {
|
170 |
foreach ($resultats as $image) {
|
164 |
$req = "UPDATE cel_obs SET mots_cles_texte = (SELECT GROUP_CONCAT(mot_cle) FROM cel_arbre_mots_cles_obs cm "
|
171 |
$req = "UPDATE cel_obs SET mots_cles_texte = (SELECT GROUP_CONCAT(mot_cle) FROM cel_arbre_mots_cles_obs cm ".
|
165 |
. "INNER JOIN cel_mots_cles_obs_liaison cml ON cml.id_mot_cle = cm.id_mot_cle AND cml.id_element_lie = '" . $image['id_observation'] . "') "
|
172 |
"INNER JOIN cel_mots_cles_obs_liaison cml ON cml.id_mot_cle = cm.id_mot_cle AND cml.id_element_lie = '" . $image['id_observation'] . "') ".
|
166 |
. "WHERE id_observation = '" . $image['id_observation'] . "'";
|
173 |
"WHERE id_observation = '" . $image['id_observation'] . "'";
|
167 |
$this->bdd->requeter($req);
|
174 |
$this->bdd->requeter($req);
|
Line 168... |
Line 175... |
168 |
}
|
175 |
}
|
Line 233... |
Line 240... |
233 |
|
240 |
|
234 |
protected function reparerLiaisonsOublieesObs() {
|
241 |
protected function reparerLiaisonsOublieesObs() {
|
235 |
// Toutes les liaisons obs-motscles avec l'id utilisateur issu de la table cel obs car
|
242 |
// Toutes les liaisons obs-motscles avec l'id utilisateur issu de la table cel obs car
|
236 |
// dans la table de liaison il est souvent vide
|
243 |
// dans la table de liaison il est souvent vide
|
237 |
$requete_liaisons = "SELECT com.id_observation, com.id_mot_cle_obs, co.ce_utilisateur ".
|
244 |
$requete_liaisons = "SELECT com.id_observation, com.id_mot_cle_obs, co.ce_utilisateur ".
|
Line 238... |
Line 245... |
238 |
"FROM `cel_obs_mots_cles` com INNER JOIN cel_obs co ON co.id_observation = com.id_observation ";
|
245 |
"FROM `cel_obs_mots_cles` com INNER JOIN cel_obs co ON co.id_observation = com.id_observation ";
|
239 |
|
246 |
|
Line 240... |
Line 247... |
240 |
$liaisons = $this->bdd->recupererTous($requete_liaisons);
|
247 |
$liaisons = $this->bdd->recupererTous($requete_liaisons);
|
Line 284... |
Line 291... |
284 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison])) {
|
291 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison])) {
|
285 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle])) {
|
292 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle])) {
|
286 |
$nouvel_id_mot_cle = $nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle]['id_mot_cle'];
|
293 |
$nouvel_id_mot_cle = $nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle]['id_mot_cle'];
|
Line 287... |
Line 294... |
287 |
|
294 |
|
288 |
$valeurs_a_inserer[] = array(
|
295 |
$valeurs_a_inserer[] = array(
|
289 |
'id_element_lie' => $liaison['id_observation'],
|
296 |
'id_element_lie' => $liaison['id_observation'],
|
290 |
'id_mot_cle' => $nouvel_id_mot_cle,
|
297 |
'id_mot_cle' => $nouvel_id_mot_cle,
|
291 |
'ancienne_liaison' => $liaison
|
298 |
'ancienne_liaison' => $liaison
|
292 |
);
|
299 |
);
|
293 |
$ids_obs[] = $liaison['id_observation'];
|
300 |
$ids_obs[] = $liaison['id_observation'];
|
294 |
} else {
|
301 |
} else {
|
295 |
$nouveaux_mot_cles_pas_trouves++;
|
302 |
$nouveaux_mot_cles_pas_trouves++;
|
Line 313... |
Line 320... |
313 |
echo "Nouveaux mots clés inconnus ".$nouveaux_mot_cles_pas_trouves."\n";
|
320 |
echo "Nouveaux mots clés inconnus ".$nouveaux_mot_cles_pas_trouves."\n";
|
Line 314... |
Line 321... |
314 |
|
321 |
|
Line 315... |
Line 322... |
315 |
$tranches = array_chunk($valeurs_a_inserer, 800);
|
322 |
$tranches = array_chunk($valeurs_a_inserer, 800);
|
316 |
|
323 |
|
317 |
foreach($tranches as $tranche) {
|
- |
|
318 |
$requete_insertion = "INSERT IGNORE INTO cel_mots_cles_obs_liaison (id_element_lie, id_mot_cle) ".
|
324 |
foreach($tranches as $tranche) {
|
319 |
"VALUES ";
|
325 |
$requete = "INSERT IGNORE INTO cel_mots_cles_obs_liaison (id_element_lie, id_mot_cle) VALUES ";
|
320 |
foreach($tranche as $l) {
|
326 |
foreach($tranche as $l) {
|
321 |
$requete_insertion .= "('".$l['id_element_lie']."', '".$l['id_mot_cle']."'),";
|
327 |
$requete .= "('".$l['id_element_lie']."', '".$l['id_mot_cle']."'), ";
|
322 |
}
|
328 |
}
|
323 |
$requete_insertion = rtrim($requete_insertion, ',');
|
329 |
$requete = rtrim($requete, ',');
|
324 |
$insertion = $this->bdd->requeter($requete_insertion);
|
330 |
$insertion = $this->bdd->requeter($requete);
|
325 |
$this->afficherAvancement("Liaisons insérées (par paquet de 800) ", 1);
|
331 |
$this->afficherAvancement("Liaisons insérées (par paquet de 800) ", 1);
|
326 |
}
|
332 |
}
|
Line 376... |
Line 382... |
376 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison])) {
|
382 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison])) {
|
377 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle])) {
|
383 |
if(isset($nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle])) {
|
378 |
$nouvel_id_mot_cle = $nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle]['id_mot_cle'];
|
384 |
$nouvel_id_mot_cle = $nouveau_mots_cles_fmt[$id_utilisateur_liaison][$texte_ancien_mot_cle]['id_mot_cle'];
|
Line 379... |
Line 385... |
379 |
|
385 |
|
380 |
$valeurs_a_inserer[] = array(
|
386 |
$valeurs_a_inserer[] = array(
|
381 |
'id_element_lie' => $liaison['id_image'],
|
387 |
'id_element_lie' => $liaison['id_image'],
|
382 |
'id_mot_cle' => $nouvel_id_mot_cle,
|
388 |
'id_mot_cle' => $nouvel_id_mot_cle,
|
383 |
'ancienne_liaison' => $liaison
|
389 |
'ancienne_liaison' => $liaison
|
384 |
);
|
390 |
);
|
385 |
$ids_imgs[] = $liaison['id_image'];
|
391 |
$ids_imgs[] = $liaison['id_image'];
|
386 |
} else {
|
392 |
} else {
|
387 |
$nouveaux_mot_cles_pas_trouves++;
|
393 |
$nouveaux_mot_cles_pas_trouves++;
|
Line 404... |
Line 410... |
404 |
echo "Nouveaux mots clés inconnus ".$nouveaux_mot_cles_pas_trouves."\n";
|
410 |
echo "Nouveaux mots clés inconnus ".$nouveaux_mot_cles_pas_trouves."\n";
|
Line 405... |
Line 411... |
405 |
|
411 |
|
Line 406... |
Line 412... |
406 |
$tranches = array_chunk($valeurs_a_inserer, 800);
|
412 |
$tranches = array_chunk($valeurs_a_inserer, 800);
|
407 |
|
413 |
|
408 |
foreach($tranches as $tranche) {
|
414 |
foreach($tranches as $tranche) {
|
409 |
$requete_insertion = "INSERT IGNORE INTO cel_mots_cles_images_liaison (id_element_lie, id_mot_cle) ".
|
415 |
$requete = "INSERT IGNORE INTO cel_mots_cles_images_liaison (id_element_lie, id_mot_cle) ".
|
410 |
"VALUES ";
|
416 |
"VALUES ";
|
411 |
foreach($tranche as $l) {
|
417 |
foreach($tranche as $l) {
|
412 |
$requete_insertion .= "('".$l['id_element_lie']."', '".$l['id_mot_cle']."'),";
|
418 |
$requete .= "('".$l['id_element_lie']."', '".$l['id_mot_cle']."'),";
|
413 |
}
|
419 |
}
|
414 |
$requete_insertion = rtrim($requete_insertion, ',');
|
420 |
$requete = rtrim($requete, ',');
|
415 |
$insertion = $this->bdd->requeter($requete_insertion);
|
421 |
$insertion = $this->bdd->requeter($requete);
|
416 |
$this->afficherAvancement("Liaisons insérées (par paquet de 800) ", 1);
|
422 |
$this->afficherAvancement("Liaisons insérées (par paquet de 800) ", 1);
|
417 |
}
|
423 |
}
|
Line 418... |
Line 424... |
418 |
echo "\n";
|
424 |
echo "\n";
|
419 |
}
|
425 |
}
|
420 |
|
426 |
|
- |
|
427 |
private function reparerLiaisonsObsParMotsClesTexte($mot_cle_texte_recherche) {
|
421 |
private function reparerLiaisonsObsParMotsClesTexte($mot_cle_texte_recherche) {
|
428 |
$ancienne_table_obs = Config::get('table_obs_recup');
|
422 |
$ancienne_table_obs = Config::get('table_obs_recup');
|
429 |
$requete = "SELECT ce_utilisateur, id_observation, mots_cles_texte ".
|
423 |
$requete_anciens_mots_cles_texte = "SELECT ce_utilisateur, id_observation, mots_cles_texte ".
|
430 |
"FROM $ancienne_table_obs ".
|
- |
|
431 |
"WHERE mots_cles_texte LIKE '%$mot_cle_texte_recherche%' ";
|
424 |
"FROM ".$ancienne_table_obs." WHERE mots_cles_texte LIKE '%".$mot_cle_texte_recherche."%'";
|
432 |
$obs_a_mot_cle = $this->bdd->recupererTous($requete);
|
425 |
$obs_a_mot_cle = $this->bdd->recupererTous($requete_anciens_mots_cles_texte);
|
433 |
|
- |
|
434 |
$requete = 'SELECT * '.
|
426 |
|
435 |
'FROM cel_arbre_mots_cles_obs '.
|
427 |
$requete_nouveaux_mots_cle = "SELECT * FROM cel_arbre_mots_cles_obs ".
|
436 |
'WHERE id_utilisateur IN ( '.
|
428 |
"WHERE id_utilisateur IN ".
|
437 |
' SELECT id_utilisateur '.
|
Line 429... |
Line 438... |
429 |
"(SELECT id_utilisateur FROM ".$ancienne_table_obs." ".
|
438 |
"FROM $ancienne_table_obs ".
|
430 |
"WHERE mots_cles_texte LIKE '%".$mot_cle_texte_recherche."%')";
|
439 |
" WHERE mots_cles_texte LIKE '%$mot_cle_texte_recherche%') ";
|
431 |
$nouveaux_mots_cles = $this->bdd->recupererTous($requete_nouveaux_mots_cle);
|
440 |
$nouveaux_mots_cles = $this->bdd->recupererTous($requete);
|
432 |
|
441 |
|
Line 541... |
Line 550... |
541 |
private function reductionMotsClesUtilisateur($idUtilisateur, $mode = "images") {
|
550 |
private function reductionMotsClesUtilisateur($idUtilisateur, $mode = "images") {
|
542 |
$table = "cel_arbre_mots_cles_";
|
551 |
$table = "cel_arbre_mots_cles_";
|
543 |
if ($mode == "images" || $mode == "obs") {
|
552 |
if ($mode == "images" || $mode == "obs") {
|
544 |
$table .= $mode;
|
553 |
$table .= $mode;
|
545 |
}
|
554 |
}
|
546 |
$q1 = "SELECT id_mot_cle, chemin, mot_cle, (LOCATE(mot_cle, chemin) != 0) as valide FROM `$table`"
|
555 |
$q1 = 'SELECT id_mot_cle, chemin, mot_cle, (LOCATE(mot_cle, chemin) != 0) AS valide '.
|
- |
|
556 |
"FROM `$table` ".
|
547 |
. " WHERE id_utilisateur = '$idUtilisateur'"
|
557 |
"WHERE id_utilisateur = '$idUtilisateur' ".
|
548 |
. " ORDER BY chemin ASC, valide DESC;";
|
558 |
"ORDER BY chemin ASC, valide DESC ";
|
549 |
$r1 = $this->bdd->requeter($q1);
|
559 |
$r1 = $this->bdd->requeter($q1);
|
Line 550... |
Line 560... |
550 |
|
560 |
|
551 |
$idsMotsCles = array();
|
561 |
$idsMotsCles = array();
|
552 |
$nbVieux = 0;
|
562 |
$nbVieux = 0;
|
Line 616... |
Line 626... |
616 |
}
|
626 |
}
|
617 |
}
|
627 |
}
|
618 |
echo "Fin de la réduction des mots clés $mode \n";
|
628 |
echo "Fin de la réduction des mots clés $mode \n";
|
619 |
}
|
629 |
}
|
Line 620... |
Line 630... |
620 |
|
630 |
|
621 |
private function supprimerMajuscules($table, $colonne, $util=null) {
|
631 |
private function supprimerMajuscules($table, $colonne, $util = null) {
|
622 |
$requete = "UPDATE ".$table." SET ".$colonne." = LOWER(".$colonne.")";
|
632 |
$requete = "UPDATE $table SET $colonne = LOWER($colonne)";
|
623 |
if ($util !== null) {
|
633 |
if ($util !== null) {
|
624 |
$requete .= " WHERE id_utilisateur = $util";
|
634 |
$requete .= " WHERE id_utilisateur = $util";
|
625 |
}
|
635 |
}
|
626 |
$this->bdd->requeter($requete);
|
636 |
$this->bdd->requeter($requete);
|
Line 627... |
Line 637... |
627 |
}
|
637 |
}
|
628 |
|
- |
|
629 |
private function supprimerAccents($table, $colonne, $util=null) {
|
638 |
|
630 |
|
639 |
private function supprimerAccents($table, $colonne, $util = null) {
|
631 |
$requetes = array(
|
640 |
$requetes = array(
|
632 |
"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Š','S')",
|
641 |
"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'Š','S')",
|
633 |
"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'š','s')",
|
642 |
"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'š','s')",
|
Line 698... |
Line 707... |
698 |
"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ƒ','f')",
|
707 |
"UPDATE ".$table." SET ".$colonne." = REPLACE(".$colonne.",'ƒ','f')",
|
699 |
);
|
708 |
);
|
Line 700... |
Line 709... |
700 |
|
709 |
|
701 |
foreach($requetes as $requete) {
|
710 |
foreach($requetes as $requete) {
|
702 |
if ($util !== null) {
|
711 |
if ($util !== null) {
|
703 |
$requete .= " WHERE id_utilisateur = $util";
|
712 |
$requete .= " WHERE id_utilisateur = $util ";
|
704 |
}
|
713 |
}
|
705 |
$this->bdd->requeter($requete);
|
714 |
$this->bdd->requeter($requete);
|
706 |
}
|
715 |
}
|
707 |
}
|
716 |
}
|
708 |
}
|
717 |
}
|