Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3684 Rev 3685
Line 33... Line 33...
33
// TODO : supprimer le TRIM quand les obs seront reliées correctements aux localisations (sur le code INSEE par exemple)
33
// TODO : supprimer le TRIM quand les obs seront reliées correctements aux localisations (sur le code INSEE par exemple)
34
class CelWidgetMapPoint extends Cel {
34
class CelWidgetMapPoint extends Cel {
35
	const MARQUEUR_GROUPE = 'GROUPE';
35
	const MARQUEUR_GROUPE = 'GROUPE';
36
	const MARQUEUR_COMMUNE = 'COMMUNE';
36
	const MARQUEUR_COMMUNE = 'COMMUNE';
37
	const MARQUEUR_STATION = 'STATION';
37
	const MARQUEUR_STATION = 'STATION';
38
	private $standard = "AND donnees_standard = 1";
38
	private $standard = "1";
-
 
39
	private $table_export = "cel_export";
Line 39... Line 40...
39
	
40
	
40
	/**
41
	/**
41
	 * Méthode appelée avec une requête de type GET.
42
	 * Méthode appelée avec une requête de type GET.
42
	 */
43
	 */
Line 46... Line 47...
46
			$this->parametres = array();
47
			$this->parametres = array();
47
		}
48
		}
48
		extract($this->parametres);
49
		extract($this->parametres);
49
		//Chronometre::chrono("Avant groupage");
50
		//Chronometre::chrono("Avant groupage");
50
		if (isset($this->parametres['standard']) && $this->parametres['standard'] == 0) {
51
		if (isset($this->parametres['standard']) && $this->parametres['standard'] == 0) {
51
		    $this->standard = "";
52
		    $this->standard = "0";
-
 
53
		    $this->table_export = "cel_export_total";
-
 
54
		    
52
		}
55
		}
Line 53... Line 56...
53
 
56
 
54
		$action = array_shift($ressources);
57
		$action = array_shift($ressources);
55
		if (isset($action)) {
58
		if (isset($action)) {
Line 105... Line 108...
105
 
108
 
Line 106... Line 109...
106
	public function getTout($params) { 
109
	public function getTout($params) { 
107
 
110
 
108
		$emplacements = null;
-
 
-
 
111
		$emplacements = null;
109
		$concatenation_id = "CONCAT(IFNULL(latitude,''),IFNULL(longitude,''), IFNULL(wgs84_latitude,''),IFNULL(wgs84_longitude,'')) ";
112
		$concatenation_id = "CONCAT(IFNULL(latitude,''),IFNULL(longitude,''), IFNULL(wgs84_latitude,''),IFNULL(wgs84_longitude,'')) ";
110
 
113
		$transmission = ( $this->standard = 0) ? "transmission = '1' AND " : "";
111
		$requete =  'SELECT ce_zone_geo, zone_geo, station, '.
114
		$requete =  'SELECT ce_zone_geo, zone_geo, station, '.
112
								"mots_cles_texte, ".
115
								"mots_cles_texte, ".
113
								"latitude, ".
116
								"latitude, ".
114
								"wgs84_latitude, ".
117
								"wgs84_latitude, ".
115
								"longitude, ".
118
								"longitude, ".
116
								"wgs84_longitude, ".
119
								"wgs84_longitude, ".
117
								$concatenation_id." as id_coord ".
120
								$concatenation_id." as id_coord ".
118
					'FROM cel_export_total AS co '.
121
					'FROM '.$this->table_export.' AS co '.
119
                    '   LEFT JOIN cel_zones_geo AS zg '.
122
                    '   LEFT JOIN cel_zones_geo AS zg '.
120
                    '       ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
-
 
121
                    "WHERE transmission = '1' ".
123
                    '       ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
122
                    $this->standard.
124
                    "WHERE ".$transmission.
123
                    " AND (".
125
                    " (".
124
                    $this->construireWhereRectangleStationOR()." OR ".
126
                    $this->construireWhereRectangleStationOR()." OR ".
125
					$this->construireWhereRectangleCommuneOR().") ".
127
					$this->construireWhereRectangleCommuneOR().") ".
126
					$this->construireWhereDept().
128
					$this->construireWhereDept().
Line 153... Line 155...
153
	}
155
	}
Line 154... Line 156...
154
 
156
 
Line 155... Line 157...
155
	private $nb_obs = 0;
157
	private $nb_obs = 0;
-
 
158
 
156
 
159
	private function compterObservations($params) {
157
	private function compterObservations($params) {
160
	    $transmission = ( $this->standard = 0) ? "transmission = '1' AND " : "";
158
		$requete =  'SELECT COUNT(*) as nb '.
161
		$requete =  'SELECT COUNT(*) as nb '.
159
					'FROM cel_export_total AS co '.
162
					'FROM '.$this->table_export.' AS co '.
160
                    '   LEFT JOIN cel_zones_geo AS zg '.
163
                    '   LEFT JOIN cel_zones_geo AS zg '.
161
                    '       ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
-
 
162
                    "WHERE transmission = '1' ".
164
                    '       ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
163
                    $this->standard.
165
                    "WHERE ".$transmission.
164
                    " AND (".
166
                    " (".
165
                    $this->construireWhereRectangleStationOR()." OR ".
167
                    $this->construireWhereRectangleStationOR()." OR ".
166
					$this->construireWhereRectangleCommuneOR().") ".
168
					$this->construireWhereRectangleCommuneOR().") ".
167
					$this->construireWhereDept().
169
					$this->construireWhereDept().
Line 342... Line 344...
342
	 * Données pour l'affichage des obs d'une station
344
	 * Données pour l'affichage des obs d'une station
343
	 */
345
	 */
344
	public function getObservations($params) {
346
	public function getObservations($params) {
345
		$resultats = array();
347
		$resultats = array();
346
		$total = 0;
348
		$total = 0;
-
 
349
		$transmission = ( $this->standard = 0) ? "transmission = '1' " : "";
-
 
350
		
347
		if (isset($this->parametres['station']) && !$this->etreNull($this->parametres['station'])) {
351
		if (isset($this->parametres['station']) && !$this->etreNull($this->parametres['station'])) {
348
			$requete = 	'SELECT SQL_CALC_FOUND_ROWS id_observation, ce_utilisateur, courriel_utilisateur, pseudo_utilisateur as nom_utilisateur, "" as prenom_utilisateur, '.
352
			$requete = 	'SELECT SQL_CALC_FOUND_ROWS id_observation, ce_utilisateur, courriel_utilisateur, pseudo_utilisateur as nom_utilisateur, "" as prenom_utilisateur, '.
349
						'	nom_sel, nom_ret, nom_sel_nn, nom_ret_nn, "" as nt, famille, '.
353
						'	nom_sel, nom_ret, nom_sel_nn, nom_ret_nn, "" as nt, famille, '.
350
						'	lieudit, zone_geo, date_observation, milieu, commentaire, '.
354
						'	lieudit, zone_geo, date_observation, milieu, commentaire, '.
351
						'	utm_secteur, utm_x, utm_y, code, date_transmission, nom_referentiel '.
355
						'	utm_secteur, utm_x, utm_y, code, date_transmission, nom_referentiel '.
352
						'FROM cel_export_total AS co '.
356
						'FROM '.$this->table_export.' AS co '.
353
						'	LEFT JOIN cel_zones_geo AS zg '.
357
						'	LEFT JOIN cel_zones_geo AS zg '.
354
						"		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) ".
358
						"		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) ".
355
						"WHERE transmission = '1' ".
359
						"WHERE ".$transmission.
356
						$this->standard.
-
 
357
						(($this->communeEstDemandee()) ? $this->construireWhereCommuneSansCoordonneesAvecSensibles() : $this->construireWhereCoordonneesSansSensibles()).
360
						(($this->communeEstDemandee()) ? $this->construireWhereCommuneSansCoordonneesAvecSensibles() : $this->construireWhereCoordonneesSansSensibles()).
358
						$this->construireWhereDept().
361
						$this->construireWhereDept().
359
						$this->construireWherePays().
362
						$this->construireWherePays().
360
						$this->construireWhereUtilisateur().
363
						$this->construireWhereUtilisateur().
361
						$this->construireWhereNumTaxonAvecSousTaxons().
364
						$this->construireWhereNumTaxonAvecSousTaxons().
Line 494... Line 497...
494
	/**
497
	/**
495
	 * Liste des taxons présents sur la carte
498
	 * Liste des taxons présents sur la carte
496
	 */
499
	 */
497
	public function getTaxons($params) {
500
	public function getTaxons($params) {
498
		$json = null;
501
		$json = null;
499
 
-
 
-
 
502
		$transmission = ( $this->standard = 0) ? "transmission = '1' AND " : "";
500
		$requete = 	'SELECT SQL_CALC_FOUND_ROWS DISTINCT nom_ret, nom_ret_nn, nt, famille '.
503
		$requete = 	'SELECT SQL_CALC_FOUND_ROWS DISTINCT nom_ret, nom_ret_nn, nt, famille '.
501
					'FROM cel_export_total AS co '.
504
					'FROM '.$this->table_export.' AS co '.
502
					'	LEFT JOIN cel_zones_geo AS zg '.
505
					'	LEFT JOIN cel_zones_geo AS zg '.
503
					'		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
506
					'		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
504
					"WHERE transmission = '1' ".
507
					"WHERE ".$transmission.
505
					$this->standard.
-
 
506
					"	AND nom_ret != '' ".
508
					"	nom_ret != '' ".
507
					$this->construireWhereDept().
509
					$this->construireWhereDept().
508
                    $this->construireWhereCommune().
510
                    $this->construireWhereCommune().
509
                    $this->construireWherePays().
511
                    $this->construireWherePays().
510
                    $this->construireWhereUtilisateur().
512
                    $this->construireWhereUtilisateur().
511
					$this->construireWhereNumTaxon().
513
					$this->construireWhereNumTaxon().
Line 645... Line 647...
645
 
647
 
646
	private function construireWhereReferentiel() {
648
	private function construireWhereReferentiel() {
647
		$sql = '';
649
		$sql = '';
648
		extract($this->parametres);
650
		extract($this->parametres);
649
		if (isset($referentiel) && !$this->etreNull($referentiel)) {
651
		if (isset($referentiel) && !$this->etreNull($referentiel)) {
650
			$referentiel = Cel::db()->proteger($referentiel.'%');
652
			$referentiel = Cel::db()->proteger($referentiel);
651
			$sql = ' AND co.nom_referentiel LIKE '.$referentiel.' ';
653
			$sql = ' AND co.nom_referentiel = '.$referentiel.' ';
652
		}
654
		}
653
		return $sql;
655
		return $sql;
Line 654... Line 656...
654
	}
656
	}
Line 756... Line 758...
756
	/**
758
	/**
757
	 * Récupération des identifiant d'utilisateur et des ordres des observations correspondant à une date.
759
	 * Récupération des identifiant d'utilisateur et des ordres des observations correspondant à une date.
758
	 * Retour sous forme de tableau : array[identifiant] = array(ordre, ordre...);
760
	 * Retour sous forme de tableau : array[identifiant] = array(ordre, ordre...);
759
	 */
761
	 */
760
	private function obtenirObsLieesImg($type, $param) {
762
	private function obtenirObsLieesImg($type, $param) {
-
 
763
	    $transmission = ( $this->standard = 0) ? "transmission = '1' AND " : "";
761
		// Construction de la requête
764
		// Construction de la requête
762
		$requete = 	'SELECT DISTINCT co.id_obs, co.ce_utilisateur AS utilisateur '.
765
		$requete = 	'SELECT DISTINCT co.id_obs, co.ce_utilisateur AS utilisateur '.
763
			'FROM cel_export_total AS co '.
766
			'FROM '.$this->table_export.' AS co '.
764
			'	LEFT JOIN cel_zones_geo AS zg '.
767
			'	LEFT JOIN cel_zones_geo AS zg '.
765
			'		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
768
			'		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) '.
766
			"WHERE co.transmission = '1'  and co.images != null".
769
			"WHERE ".$transmission." co.images != null".
767
			$this->standard.
-
 
768
			($type == 'date.creation' ? " AND co.date_creation LIKE $param " : '').
770
			($type == 'date.creation' ? " AND co.date_creation LIKE $param " : '').
769
			($type == 'commentaire.obs' ? "	AND co.commentaire LIKE $param " : '').
771
			($type == 'commentaire.obs' ? "	AND co.commentaire LIKE $param " : '').
770
			($type == 'commentaire.*' ? " AND co.commentaire LIKE $param " : '').
772
			($type == 'commentaire.*' ? " AND co.commentaire LIKE $param " : '').
771
			$this->construireWhereCoordonnees().
773
			$this->construireWhereCoordonnees().
772
			$this->construireWhereDept().
774
			$this->construireWhereDept().
Line 1141... Line 1143...
1141
	/**
1143
	/**
1142
	 * Traitement de $tag pour construction du filtre dans la requête
1144
	 * Traitement de $tag pour construction du filtre dans la requête
1143
	 */
1145
	 */
1144
	private function getSqlWhereObsAvecImagesTaguees($tag) {
1146
	private function getSqlWhereObsAvecImagesTaguees($tag) {
1145
		$sql = null;
1147
		$sql = null;
-
 
1148
		$transmission = ( $this->standard = 0) ? "co.transmission = '1' " : "";
1146
		if (isset($tag) && !$this->etreNull($tag)) {
1149
		if (isset($tag) && !$this->etreNull($tag)) {
1147
			$tag_sql = $this->getSqlWhereMotsCles($tag);
1150
			$tag_sql = $this->getSqlWhereMotsCles($tag);
1148
			// Construction de la requête
1151
			// Construction de la requête
1149
			$requete = 	'SELECT DISTINCT co.id_observation AS id_obs, co.ce_utilisateur AS utilisateur '.
1152
			$requete = 	'SELECT DISTINCT co.id_observation AS id_obs, co.ce_utilisateur AS utilisateur '.
1150
						'FROM cel_images_export ci'.
1153
						'FROM cel_images_export ci'.
1151
						'	INNER JOIN cel_export_total AS co '.
1154
						'	INNER JOIN '.$this->table_export.' AS co '.
1152
						'		ON (ci.ce_observation = co.id_observation) '.
1155
						'		ON (ci.ce_observation = co.id_observation) '.
1153
						'	LEFT JOIN cel_zones_geo AS zg '.
1156
						'	LEFT JOIN cel_zones_geo AS zg '.
1154
						"		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) ".
1157
						"		ON (zg.nom = co.zone_geo AND zg.id_zone_geo = co.ce_zone_geo) ".
1155
						"WHERE co.transmission = '1' ".
-
 
1156
						$this->standard.
1158
						"WHERE ".
1157
						$this->construireWhereCoordonnees().
1159
						$this->construireWhereCoordonnees().
1158
						$this->construireWhereUtilisateur().
1160
						$this->construireWhereUtilisateur().
1159
						$this->construireWhereNumTaxon().
1161
						$this->construireWhereNumTaxon().
1160
						$this->construireWhereNomTaxon().
1162
						$this->construireWhereNomTaxon().
1161
						$this->construireWhereReferentiel().
1163
						$this->construireWhereReferentiel().