Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1369 Rev 1373
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;