Subversion Repositories eFlore/Applications.del

Rev

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

Rev 2121 Rev 2140
Line 68... Line 68...
68
	private function getPrefixe() {
68
	private function getPrefixe() {
69
		return $this->appli === 'IMG' ? 'di' : 'do';
69
		return $this->appli === 'IMG' ? 'di' : 'do';
70
	}
70
	}
Line 71... Line 71...
71
 
71
 
72
	private function etreAppliImg() {
72
	private function etreAppliImg() {
73
		return $this->appli === 'IMG' ? true : false;
73
		return $this->appli === 'IMG';
Line 74... Line 74...
74
	}
74
	}
75
 
75
 
76
	private function etreAppliObs() {
76
	private function etreAppliObs() {
Line 77... Line 77...
77
		return $this->appli === 'OBS' ? true : false;
77
		return $this->appli === 'OBS';
78
	}
78
	}
79
 
79
 
Line 156... Line 156...
156
	public function getLimit() {
156
	public function getLimit() {
157
		return 'LIMIT '.$this->parametres['navigation.depart'].','.$this->parametres['navigation.limite'].' ';
157
		return 'LIMIT '.$this->parametres['navigation.depart'].','.$this->parametres['navigation.limite'].' ';
158
	}
158
	}
Line 159... Line 159...
159
 
159
 
160
	/**
-
 
161
 
-
 
162
	 *
160
	/**
163
	 * @param $p les paramètres (notamment de masque) passés par l'URL et déjà traités/filtrés (sauf quotes)
161
	 * @param $p les paramètres (notamment de masque) passés par l'URL et déjà traités/filtrés (sauf quotes)
164
	 * @param $req le tableau, passé par référence représentant les composants de la requête à bâtir
162
	 * @param $req le tableau, passé par référence représentant les composants de la requête à bâtir
165
	 */
163
	 */
166
	public function ajouterContraintes() {
164
	public function ajouterContraintes() {
Line 173... Line 171...
173
		$this->ajouterContrainteFamille();
171
		$this->ajouterContrainteFamille();
174
		$this->ajouterContrainteNs();
172
		$this->ajouterContrainteNs();
175
		$this->ajouterContrainteNn();
173
		$this->ajouterContrainteNn();
176
		$this->ajouterContrainteReferentiel();
174
		$this->ajouterContrainteReferentiel();
177
		$this->ajouterContrainteCommune();
175
		$this->ajouterContrainteCommune();
-
 
176
		$this->ajouterContraintePnInscrits();
178
	}
177
	}
Line 179... Line 178...
179
 
178
 
180
	private function ajouterContrainteAuteur() {
179
	private function ajouterContrainteAuteur() {
181
		if (isset($this->parametres['masque.auteur'])) {
180
		if (isset($this->parametres['masque.auteur'])) {
Line 377... Line 376...
377
			$this->addWhere('masque.commune', "do.zone_geo LIKE $communeMotif");
376
			$this->addWhere('masque.commune', "do.zone_geo LIKE $communeMotif");
Line 378... Line 377...
378
 
377
 
379
			$this->ajouterJoinObsSiNecessaire();
378
			$this->ajouterJoinObsSiNecessaire();
380
		}
379
		}
-
 
380
	}
-
 
381
 
-
 
382
	/**
-
 
383
	 * Si masque.pninscritsseulement vaut true, les observations ayant un tag
-
 
384
	 * "plantnet" mais dont l'auteur n'est pas inscrit à TB seront éliminées
-
 
385
	 * (décision FlorisTic 2016-09)
-
 
386
	 */
-
 
387
	protected function ajouterContraintePnInscrits() {
-
 
388
		if (isset($this->parametres['masque.pninscritsseulement'])) {
-
 
389
			// avec la classe ParametresFiltrage, on ne passe là que si le masque vaut 1
-
 
390
			$motifMotClePlantnet = "'%plantnet%'";
-
 
391
			$this->addWhere('masque.pninscritsseulement', "((do.mots_cles_texte NOT LIKE $motifMotClePlantnet OR do.mots_cles_texte IS NULL) OR do.ce_utilisateur != 0)");
-
 
392
 
-
 
393
			$this->ajouterJoinObsSiNecessaire();
-
 
394
		}
Line 381... Line 395...
381
	}
395
	}
382
	
396
	
383
	private function ajouterJoinObsSiNecessaire() {
397
	private function ajouterJoinObsSiNecessaire() {
384
			if ($this->etreAppliImg()) {
398
			if ($this->etreAppliImg()) {
Line 389... Line 403...
389
	private function getSqlJointureObs() {
403
	private function getSqlJointureObs() {
390
		$typeJointure = !empty($this->parametres['masque']) ? 'LEFT' : 'INNER';
404
		$typeJointure = !empty($this->parametres['masque']) ? 'LEFT' : 'INNER';
391
		return $typeJointure.' JOIN del_observation AS do ON (di.ce_observation = do.id_observation) ';
405
		return $typeJointure.' JOIN del_observation AS do ON (di.ce_observation = do.id_observation) ';
392
	}
406
	}
Line -... Line 407...
-
 
407
 
393
 
408
	// la constrainte de nostre bon roy
394
	public function ajouterConstrainteAppliObs() {
409
	public function ajouterConstrainteAppliObs() {
395
		$this->ajouterContrainteTagCel();
410
		$this->ajouterContrainteTagCel();
396
		$this->ajouterContrainteType();
411
		$this->ajouterContrainteType();
397
		// TODO : ATTENTION -> vue que l'on utilise une vue basée sur les images, nous devons grouper par obs
412
		// TODO : ATTENTION -> vu que l'on utilise une vue basée sur les images, nous devons grouper par obs
398
		$this->addGroupBy('do.id_observation');
413
		$this->addGroupBy('do.id_observation');
Line 399... Line 414...
399
	}
414
	}
400
 
415
 
Line 489... Line 504...
489
	public function ajouterConstrainteAppliImg() {
504
	public function ajouterConstrainteAppliImg() {
490
		$this->ajouterContrainteMilieu();
505
		$this->ajouterContrainteMilieu();
491
		$this->ajouterContrainteTri();
506
		$this->ajouterContrainteTri();
492
		$this->ajouterContrainteTagCel();
507
		$this->ajouterContrainteTagCel();
493
		$this->ajouterContrainteTagDel();
508
		$this->ajouterContrainteTagDel();
-
 
509
		$this->ajouterContraintePnInscrits();
494
	}
510
	}
Line 495... Line 511...
495
 
511
 
496
	private function ajouterContrainteMilieu() {
512
	private function ajouterContrainteMilieu() {
497
		if (isset($this->parametres['masque.milieu'])) {
513
		if (isset($this->parametres['masque.milieu'])) {