Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1441 Rev 1443
Line 91... Line 91...
91
		$parametres = $this->nettoyerParametres($parametres);
91
		$parametres = $this->nettoyerParametres($parametres);
Line 92... Line 92...
92
	
92
	
93
		// En fonction des paramètres de recherche, on n'effectue
93
		// En fonction des paramètres de recherche, on n'effectue
94
		// pas la même requête, pour optimiser les jointures et les
94
		// pas la même requête, pour optimiser les jointures et les
95
		// rapidités d'éxécution.
95
		// rapidités d'éxécution.
Line 96... Line 96...
96
		$type = $this->getTypeRequete($parametres);
96
		$type = $this->getTypeRequete($ressources, $parametres);
97
	
97
	
98
		switch ($type) {
98
		switch ($type) {
99
			case 'obs' :
99
			case 'obs' :
Line 103... Line 103...
103
				$liaisons = $this->chargerLiaisonsImages();
103
				$liaisons = $this->chargerLiaisonsImages();
104
			break;
104
			break;
105
			case 'obs-images' :
105
			case 'obs-images' :
106
				$liaisons = $this->chargerLiaisons();
106
				$liaisons = $this->chargerLiaisons();
107
			break;
107
			break;
-
 
108
			case 'id':
-
 
109
				$liaisons = $this->chargerLiaisonsParId();
-
 
110
			break;
108
			default : //case simple !
111
			default : //case simple !
109
			$liaisons = $this->chargerLiaisonsSimple();
112
				$liaisons = $this->chargerLiaisonsSimple();
110
		}
113
		}
Line 111... Line 114...
111
	
114
	
112
		$images = array();
115
		$images = array();
113
		if($liaisons) {
116
		if($liaisons) {
Line 131... Line 134...
131
	
134
	
132
	/**
135
	/**
133
	 * Charger la clause WHERE en fonction des paramètres de masque
136
	 * Charger la clause WHERE en fonction des paramètres de masque
134
	 * */
137
	 * */
135
	private function chargerClauseWhere() {
138
	private function chargerClauseWhere() {
136
	
139
 
137
		$where = array();
140
		$where = array();
138
		$tableauMasque = $this->masque->getMasque();
141
		$tableauMasque = $this->masque->getMasque();
139
		if (!empty($tableauMasque)) {
142
		if (!empty($tableauMasque)) {
140
			foreach($tableauMasque as $idMasque => $valeurMasque) {
143
			foreach($tableauMasque as $idMasque => $valeurMasque) {
Line 426... Line 429...
426
			$conditionsLibre[] = "mots_cles_texte LIKE '%$passe%'";
429
			$conditionsLibre[] = "mots_cles_texte LIKE '%$passe%'";
427
			}*/
430
			}*/
Line 428... Line 431...
428
				
431
				
429
			$conditionsObs[] = implode(' OR ', $conditionsLibre);
432
			$conditionsObs[] = implode(' OR ', $conditionsLibre);
430
		}
433
		}
431
		
434
 
432
		// referentiel
435
		// referentiel
433
		if (isset($masques['masque.referentiel'])) {
436
		if (isset($masques['masque.referentiel'])) {
434
			$ref = $masques['masque.referentiel'];
437
			$ref = $masques['masque.referentiel'];
435
			$conditionsObs[] = "dob.nom_referentiel LIKE '$ref%'";
438
			$conditionsObs[] = "dob.nom_referentiel LIKE '$ref%'";
Line 611... Line 614...
611
			$this->navigation->setTotal($total);
614
			$this->navigation->setTotal($total);
612
		}
615
		}
Line 613... Line 616...
613
 
616
 
614
		return $liaisons;
617
		return $liaisons;
615
	}
618
	}
-
 
619
 
-
 
620
	/**
-
 
621
	 * Charge les liaisons pour une seule image dont l'id est spécifié dans l'URL
-
 
622
	 * Copie de chargerLiaisonsObs avec critère sur l'id_image uniquement
-
 
623
	 * Supporte seulement le masque sur referentiel
-
 
624
	 */
-
 
625
	private function chargerLiaisonsParId() {
-
 
626
 
-
 
627
		$idImage = $this->ressources[0];
-
 
628
 
-
 
629
		// Récupérer les liaisons
-
 
630
		$requeteObs = ' SELECT SQL_CALC_FOUND_ROWS dob.id_observation as id_observation, dob.nom_referentiel, nom_sel, nom_sel_nn, nt, famille, ce_zone_geo, zone_geo, lieudit, station, milieu, '.
-
 
631
				' date_observation, dob.mots_cles_texte as mots_cles_texte, dob.commentaire as commentaire, di.mots_cles_texte as mots_cles_texte_image , date_transmission, '.
-
 
632
				' doi.id_image as id_image, di.ce_utilisateur as ce_utilisateur, prenom, nom, courriel, dob.prenom_utilisateur, dob.nom_utilisateur, dob.courriel_utilisateur, nom_original '.
-
 
633
				'FROM del_observation dob '.
-
 
634
				' INNER JOIN del_obs_image doi ON dob.id_observation = doi.id_observation '.
-
 
635
				' INNER JOIN del_image di ON doi.id_image = di.id_image '.
-
 
636
				' LEFT JOIN del_utilisateur du ON dob.ce_utilisateur = du.id_utilisateur '.
-
 
637
				' WHERE doi.id_image = '.intval($idImage);
-
 
638
 
-
 
639
		if (isset($this->parametres['masque.referentiel'])) {
-
 
640
			$requeteObs .= " AND dob.nom_referentiel LIKE '" . $this->parametres['masque.referentiel'] . "%'";
-
 
641
		}
-
 
642
 
-
 
643
		$observations = $this->bdd->recupererTous($requeteObs . ' -- ' . __FILE__ . ':' . __LINE__);
-
 
644
 
-
 
645
		$total = $this->getFoundRows();
-
 
646
		$this->navigation->setTotal($total);
-
 
647
 
-
 
648
		return $observations;
616
	
649
	}
617
	
650
 
618
	/**
651
	/**
619
	 * Chargement depuis la bdd de toutes les liaisons entre images et observations
652
	 * Chargement depuis la bdd de toutes les liaisons entre images et observations
620
	 * Méthode appelée uniquement lorsque les paramètres concernent une observation
653
	 * Méthode appelée uniquement lorsque les paramètres concernent une observation
621
	 * */
654
	 * */
Line 1089... Line 1122...
1089
	
1122
	
1090
	/**
1123
	/**
1091
	 * Obtenir le type de requête à exécuter en fonction des paramètres de recherche
1124
	 * Obtenir le type de requête à exécuter en fonction des paramètres de recherche
1092
	 * @param $parametres les paramètres de l'application
1125
	 * @param $parametres les paramètres de l'application
1093
	 * */
1126
	 * */
-
 
1127
	private function getTypeRequete($ressources, $parametres) {
-
 
1128
 
-
 
1129
		// une image par id 
-
 
1130
		if ((count($ressources) == 1) && is_numeric($ressources[0])) {
-
 
1131
			return 'id';
Line 1094... Line -...
1094
	private function getTypeRequete($parametres) {
-
 
1095
 
1132
		}
Line 1096... Line 1133...
1096
		
1133
 
1097
		$typeRequete = 'simple';
1134
		$typeRequete = 'simple';
1098
		
1135