Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3975 Rev 3991
Line 57... Line 57...
57
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
57
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
58
 `localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`, 
58
 `localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`, 
59
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
59
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
60
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur, 
60
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur, 
61
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence, 
61
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence, 
62
concat(`nom_sel`, " par ", `pseudo_utilisateur`, " [CC BY-SA 2.0 FR], via Tela Botanica") as attribution,
62
concat(case when `nom_sel` is null then "Indéterminée" else nom_sel end, " par ", case when pseudo_utilisateur = "" then substr(courriel_utilisateur, 1, locate("@", courriel_utilisateur)) when pseudo_utilisateur IS NULL then substr(courriel_utilisateur, 1, locate("@", courriel_utilisateur)) else pseudo_utilisateur end, concat(" [CC BY-SA 2.0 FR], via Tela Botanica")) as attribution,
63
 concat("'.$imgUrlTplBase.'", lpad(ci.id_image, 9, "0"), "O,") as url_photo, ci.`mots_cles_texte` as tags_photo ';
63
 concat("'.$imgUrlTplBase.'", lpad(ci.id_image, 9, "0"), "O,") as url_photo, ci.`mots_cles_texte` as tags_photo ';
Line 64... Line 64...
64
	    
64
	    
65
	    $requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
65
	    $requete_recherche_images .= $this->fabriquerRequeteJointureDblObs($criteres);
Line 66... Line 66...
66
	    $requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
66
	    $requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
67
	    
67
	    
Line 87... Line 87...
87
		unset($criteres['dir']);
87
		unset($criteres['dir']);
Line 88... Line 88...
88
 
88
 
89
		$debut = ($debut < 0) ? 0 : $debut;
89
		$debut = ($debut < 0) ? 0 : $debut;
Line 90... Line 90...
90
		$requete_recherche_images = 'SELECT ci.*, co.pseudo_utilisateur ';
90
		$requete_recherche_images = 'SELECT ci.*, co.pseudo_utilisateur ';
91
 
91
 
Line 92... Line 92...
92
		$requete_recherche_images .= $this->fabriquerRequeteJointureObs();
92
		$requete_recherche_images .= $this->fabriquerRequeteJointureObs($criteres);
93
		$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
93
		$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
Line 133... Line 133...
133
		return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0 ||
133
		return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0 ||
134
				(!empty($tri) && in_array($tri, $tris_obs));
134
				(!empty($tri) && in_array($tri, $tris_obs));
135
	}
135
	}
Line 136... Line 136...
136
 
136
 
137
	private function fabriquerRequeteJointureObs($criteres) {
137
	private function fabriquerRequeteJointureObs($criteres) {
138
	    if (isset($criteres['standard']) && $criteres['standard'] = 0 ) {
138
	    if (isset($criteres['standard']) && $criteres['standard'] == 0 ) {
139
    		$requete = 'FROM cel_images_export ci '.
139
    		$requete = 'FROM cel_images_export ci '.
140
    			'LEFT JOIN cel_export_total co '.
140
    			'LEFT JOIN cel_export_total co '.
141
    				'ON ci.ce_observation = co.id_observation '.
141
    				'ON ci.ce_observation = co.id_observation '.
142
    				'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']); 
142
    				'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']); 
Line 147... Line 147...
147
	   	        'WHERE 1 '; 
147
	   	        'WHERE 1 '; 
148
	    }
148
	    }
149
		return $requete;
149
		return $requete;
150
	}
150
	}
Line 151... Line 151...
151
	
151
	
152
	private function fabriquerRequeteJointureDblObs() {
152
	private function fabriquerRequeteJointureDblObs($criteres) {
153
	    if (isset($criteres['standard']) && $criteres['standard'] = 0 ) {
153
	    if (isset($criteres['standard']) && $criteres['standard'] == 0 ) {
154
	        $requete = 'FROM cel_images_export ci '.
154
	        $requete = 'FROM cel_images_export ci '.
155
	   	        'JOIN cel_export_total co '.
155
	   	        'JOIN cel_export_total co '.
156
	   	        'ON ci.ce_observation = co.id_observation '.
156
	   	        'ON ci.ce_observation = co.id_observation '.
157
	   	        'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']);
157
	   	        'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']);
Line 269... Line 269...
269
				    } else {
269
				    } else {
270
				        $sous_requete .= 'co.pseudo_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
270
				        $sous_requete .= 'co.pseudo_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
271
								        ' AND ';
271
								        ' AND ';
272
				    }
272
				    }
273
					break;
273
					break;
274
				case "ce_zone_geo":
274
				case "dept":
275
					if($valeur !== "NULL") {
275
					if($valeur !== "NULL") {
276
					    $depts = explode(",", $valeur);
276
					    $depts = explode(",", $valeur);
277
					    if (count($depts) == 1) {
277
					    if (count($depts) == 1) {
278
						  $sous_requete .= '(co.ce_zone_geo = '. Cel::db()->proteger($valeur).') ';
278
						  $sous_requete .= '(co.dept = '. Cel::db()->proteger($valeur).') ';
279
					    } else {
279
					    } else {
280
					        $sous_requete .= '(co.dept in ('.$valeur.')) ';
280
					        $sous_requete .= '(co.dept in ('.$valeur.')) ';
281
					    }
281
					    }
282
					}
282
					}
283
					break;
283
					break;