Line 301... |
Line 301... |
301 |
|
301 |
|
302 |
if (in_array('endiscussion', $tableauTypes)) {
|
302 |
if (in_array('endiscussion', $tableauTypes)) {
|
303 |
//Si on veut les observations en discussion, on va récupérer les ids des observations dont le nombre de commentaire est supérieur à N
|
303 |
//Si on veut les observations en discussion, on va récupérer les ids des observations dont le nombre de commentaire est supérieur à N
|
304 |
$idsObservations = $this->chargerIdsObservationsParNbCommentaires();
|
304 |
$idsObservations = $this->chargerIdsObservationsParNbCommentaires();
|
305 |
if(!empty($idsObservations)) {
|
305 |
if(!empty($idsObservations)) {
|
306 |
$requeteType[] = 'dob.id_observation IN ('.$idsObservations.') ';
|
306 |
$requeteType[] = ' dob.id_observation IN ('.$idsObservations.') ';
|
307 |
} else {
|
307 |
} else {
|
308 |
$requeteType[] = 'dob.id_observation IN (NULL) ';
|
308 |
$requeteType[] = ' dob.id_observation IN (NULL) ';
|
309 |
}
|
309 |
}
|
310 |
}
|
310 |
}
|
311 |
if ($valeurMasque != '') {
|
311 |
if ($valeurMasque != '') {
|
312 |
$where[] = implode(' OR ', $requeteType);
|
312 |
$where[] = implode(' OR ', $requeteType);
|
Line 381... |
Line 381... |
381 |
'dob.prenom_utilisateur LIKE '.$this->proteger($tableauNomPrenom[1].'%').') OR '.
|
381 |
'dob.prenom_utilisateur LIKE '.$this->proteger($tableauNomPrenom[1].'%').') OR '.
|
382 |
'(dob.nom_utilisateur LIKE '.$this->proteger($tableauNomPrenom[1].'%').' AND '.
|
382 |
'(dob.nom_utilisateur LIKE '.$this->proteger($tableauNomPrenom[1].'%').' AND '.
|
383 |
'dob.prenom_utilisateur LIKE '.$this->proteger($tableauNomPrenom[0].'%').') '.
|
383 |
'dob.prenom_utilisateur LIKE '.$this->proteger($tableauNomPrenom[0].'%').') '.
|
384 |
')';
|
384 |
')';
|
385 |
} else {
|
385 |
} else {
|
386 |
$masque = '(
|
386 |
$masque = '(' .
|
387 |
(nom LIKE '.$this->proteger($auteurId.'%').' OR '.
|
387 |
'(nom LIKE '.$this->proteger($auteurId.'%').' OR '.
|
388 |
'prenom LIKE '.$this->proteger($auteurId.'%').' OR '.
|
388 |
'prenom LIKE '.$this->proteger($auteurId.'%').' OR '.
|
389 |
'dob.nom_utilisateur LIKE '.$this->proteger($auteurId.'%').' OR '.
|
389 |
'dob.nom_utilisateur LIKE '.$this->proteger($auteurId.'%').' OR '.
|
390 |
'dob.prenom_utilisateur LIKE '.$this->proteger($auteurId.'%').')'.
|
390 |
'dob.prenom_utilisateur LIKE '.$this->proteger($auteurId.'%').')'.
|
391 |
')';
|
391 |
')';
|
392 |
}
|
392 |
}
|
Line 459... |
Line 459... |
459 |
$requeteMotsClesObs = '';
|
459 |
$requeteMotsClesObs = '';
|
460 |
//TODO voir s'il existe un moyen plus simple que le foreach + rtrim
|
460 |
//TODO voir s'il existe un moyen plus simple que le foreach + rtrim
|
461 |
// comme avec implode (attention au fait que l'on concatène des % au début et à la fin)
|
461 |
// comme avec implode (attention au fait que l'on concatène des % au début et à la fin)
|
462 |
foreach($mots_cles as $mot_cle) {
|
462 |
foreach($mots_cles as $mot_cle) {
|
463 |
$requeteMotsCles = $this->proteger('%'.$mot_cle.'%');
|
463 |
$requeteMotsCles = $this->proteger('%'.$mot_cle.'%');
|
464 |
$requeteMotsClesImg .= "di.mots_cles_texte LIKE $requeteMotsCles AND ";
|
464 |
$requeteMotsClesImg .= "dob.i_mots_cles_texte LIKE $requeteMotsCles AND ";
|
465 |
$requeteMotsClesObs .= "dob.mots_cles_texte LIKE $requeteMotsCles AND ";
|
465 |
$requeteMotsClesObs .= "dob.mots_cles_texte LIKE $requeteMotsCles AND ";
|
466 |
}
|
466 |
}
|
467 |
$requeteMotsClesImg = rtrim($requeteMotsClesImg, ' AND ');
|
467 |
$requeteMotsClesImg = rtrim($requeteMotsClesImg, ' AND ');
|
468 |
$requeteMotsClesObs = rtrim($requeteMotsClesObs, ' AND ');
|
468 |
$requeteMotsClesObs = rtrim($requeteMotsClesObs, ' AND ');
|
Line 479... |
Line 479... |
479 |
* */
|
479 |
* */
|
480 |
private function chargerLiaisons() {
|
480 |
private function chargerLiaisons() {
|
481 |
$requeteLiaisons = sprintf(
|
481 |
$requeteLiaisons = sprintf(
|
482 |
'SELECT SQL_CALC_FOUND_ROWS '.
|
482 |
'SELECT SQL_CALC_FOUND_ROWS '.
|
483 |
' dob.id_observation, nom_referentiel, nom_sel, famille, ce_zone_geo, zone_geo, lieudit, '.
|
483 |
' dob.id_observation, nom_referentiel, nom_sel, famille, ce_zone_geo, zone_geo, lieudit, '.
|
484 |
' station, milieu, date_observation, dob.mots_cles_texte, date_transmission, di.id_image, '.
|
484 |
' station, milieu, date_observation, mots_cles_texte, date_transmission, id_image, '.
|
485 |
' dob.ce_utilisateur, prenom, nom, courriel, '.
|
485 |
' dob.ce_utilisateur, prenom, nom, courriel, '.
|
486 |
' dob.prenom_utilisateur, dob.nom_utilisateur, dob.courriel_utilisateur, '.
|
486 |
' dob.prenom_utilisateur, dob.nom_utilisateur, dob.courriel_utilisateur, '.
|
487 |
' nom_original, dob.commentaire AS dob_commentaire, '.
|
487 |
' nom_original, dob.commentaire AS dob_commentaire, '.
|
488 |
' dob.nt, dob.nom_sel_nn '.
|
488 |
' dob.nt, dob.nom_sel_nn '.
|
489 |
'FROM del_observation AS dob '.
|
489 |
'FROM del_image AS dob '.
|
490 |
' LEFT JOIN del_utilisateur AS du '.
|
490 |
' LEFT JOIN del_utilisateur AS du '.
|
491 |
' ON du.id_utilisateur = dob.ce_utilisateur '.
|
491 |
' ON du.id_utilisateur = dob.ce_utilisateur '.
|
492 |
' LEFT JOIN del_obs_image AS doi '.
|
- |
|
493 |
' ON doi.id_observation = dob.id_observation '.
|
- |
|
494 |
' LEFT JOIN del_image AS di '.
|
- |
|
495 |
' ON di.id_image = doi.id_image '.
|
- |
|
496 |
'%s'.
|
492 |
'%s'.
|
497 |
' GROUP BY doi.id_observation'.
|
493 |
' GROUP BY dob.id_observation'.
|
498 |
' ORDER BY %s %s %s -- %s',
|
494 |
' ORDER BY %s %s %s -- %s',
|
499 |
$this->chargerClauseWhere(),
|
495 |
$this->chargerClauseWhere(),
|
500 |
$this->tri,
|
496 |
$this->tri,
|
501 |
$this->directionTri,
|
497 |
$this->directionTri,
|
502 |
$this->gestionBdd->getLimitSql(),
|
498 |
$this->gestionBdd->getLimitSql(),
|
Line 564... |
Line 560... |
564 |
* @param array $observations la liste des observations
|
560 |
* @param array $observations la liste des observations
|
565 |
* */
|
561 |
* */
|
566 |
private function chargerImages(&$observations) {
|
562 |
private function chargerImages(&$observations) {
|
567 |
$idObs = array_values(array_map(create_function('$a', 'return $a["id_observation"];'),
|
563 |
$idObs = array_values(array_map(create_function('$a', 'return $a["id_observation"];'),
|
568 |
$observations));
|
564 |
$observations));
|
- |
|
565 |
if(!$idObs) return;
|
569 |
$r = sprintf('SELECT id_observation, doi.id_image, date_prise_de_vue AS date, hauteur , largeur ' .
|
566 |
$r = sprintf('SELECT id_observation, id_image, date_prise_de_vue AS date, hauteur , largeur ' .
|
570 |
' FROM del_obs_image AS doi ' .
|
567 |
' FROM del_image ' .
|
571 |
' INNER JOIN del_image AS di ON doi.id_image = di.id_image ' .
|
- |
|
572 |
' WHERE doi.id_observation IN (%s) -- %s',
|
568 |
' WHERE id_observation IN (%s) -- %s',
|
573 |
implode(',',$idObs),
|
569 |
implode(',',$idObs),
|
574 |
__FILE__ . ':' . __LINE__);
|
570 |
__FILE__ . ':' . __LINE__);
|
575 |
$images = $this->bdd->recupererTous($r);
|
571 |
$images = $this->bdd->recupererTous($r);
|
576 |
if(!$images) return;
|
572 |
if(!$images) return;
|
577 |
foreach ($images as $image) {
|
573 |
foreach ($images as $image) {
|
Line 588... |
Line 584... |
588 |
* @param array $observations la liste des observations à mettre à jour
|
584 |
* @param array $observations la liste des observations à mettre à jour
|
589 |
* */
|
585 |
* */
|
590 |
private function chargerDeterminations(&$observations) {
|
586 |
private function chargerDeterminations(&$observations) {
|
591 |
$idObs = array_values(array_map(create_function('$a', 'return $a["id_observation"];'),
|
587 |
$idObs = array_values(array_map(create_function('$a', 'return $a["id_observation"];'),
|
592 |
$observations));
|
588 |
$observations));
|
- |
|
589 |
if(!$idObs) return;
|
593 |
$r = sprintf('SELECT * FROM del_commentaire AS dc WHERE dc.nom_sel IS NOT NULL AND ce_observation IN (%s) -- %s',
|
590 |
$r = sprintf('SELECT * FROM del_commentaire AS dc WHERE dc.nom_sel IS NOT NULL AND ce_observation IN (%s) -- %s',
|
594 |
implode(',',$idObs),
|
591 |
implode(',',$idObs),
|
595 |
__FILE__ . ':' . __LINE__);
|
592 |
__FILE__ . ':' . __LINE__);
|
596 |
$propositions = $this->bdd->recupererTous($r);
|
593 |
$propositions = $this->bdd->recupererTous($r);
|
597 |
if(!$propositions) return;
|
594 |
if(!$propositions) return;
|