Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3821 Rev 3823
Line 40... Line 40...
40
	}
40
	}
Line 41... Line 41...
41
	
41
	
42
	
42
	
43
	// redéfinis en 2020, affiche toutes les infos images et obs à partir d'un join pour n'avoir que les images liées à une obs
43
	// redéfinis en 2020, affiche toutes les infos images et obs à partir d'un join pour n'avoir que les images liées à une obs
44
	public function rechercherImagesJoinObservation($id_utilisateur = null, $criteres = array(), $debut = 0 , $limite = 50) {
44
	public function rechercherImagesJoinObservation($id_utilisateur = null, $criteres = array(), $debut = 0 , $limite = 50) {
45
	    $ordre = (isset($criteres['tri']) && $criteres['tri']) ? $criteres['tri'] : '';
45
		$ordre = (isset($criteres['tri']) && $criteres['tri']) ? $criteres['tri'] : '';
46
	    unset($criteres['tri']);
46
		unset($criteres['tri']);
47
	    $direction = (isset($criteres['dir']) && $criteres['dir']) ? $criteres['dir'] : 'ASC';
-
 
-
 
47
		$direction = (isset($criteres['dir']) && $criteres['dir']) ? $criteres['dir'] : 'ASC';
48
	    unset($criteres['dir']);
48
		unset($criteres['dir']);
49
	    
49
		$imgUrlTplBase = explode('%', $this->config['settings']['celImgUrlTpl'])[0];
50
	    $debut = ($debut < 0) ? 0 : $debut;
50
		$debut = ($debut < 0) ? 0 : $debut;
51
	    $requete_recherche_images = 'SELECT ci.`id_image` as id_photo, co.guid,     
51
		$requete_recherche_images = 'SELECT ci.`id_image` as id_photo, co.guid,     
52
`id_observation` as id_obs, `nom_sel`, `nom_sel_nn`, `zone_geo` as localisation, `latitude`, `longitude`,
52
`id_observation` as id_obs, `nom_sel`, `nom_sel_nn`, `zone_geo` as localisation, `latitude`, `longitude`,
53
 `date_observation` as date_obs, `commentaire`, `certitude`, `grade` as fiabilite, programme as projet, 
53
 `date_observation` as date_obs, `commentaire`, `certitude`, `grade` as fiabilite, programme as projet, 
54
`score_identiplante` as score_ip, `url_identiplante` as url_ip, `validation_identiplante` as est_ip_valide,
54
`score_identiplante` as score_ip, `url_identiplante` as url_ip, `validation_identiplante` as est_ip_valide,
55
 co.mots_cles_texte as tags_obs, `nom_ret`, `nom_ret_nn`, `famille`,`nom_referentiel`, `pays`, 
55
 co.mots_cles_texte as tags_obs, `nom_ret`, `nom_ret_nn`, `famille`,`nom_referentiel`, `pays`, 
56
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
56
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
57
 `localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`, 
57
 `localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`, 
58
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
58
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
59
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur, 
59
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur, 
60
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence, 
60
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence, 
61
concat(`nom_sel`, " par ", `pseudo_utilisateur`, " [CC BY-SA 2.0 FR], via Tela Botanica") as attribution,
61
concat(`nom_sel`, " par ", `pseudo_utilisateur`, " [CC BY-SA 2.0 FR], via Tela Botanica") as attribution,
62
 concat("https://api.tela-botanica.org/img:", lpad(ci.id_image, 9, "0"), "O,") as url_photo, ci.`mots_cles_texte` as tags_photo ';
62
 concat("'.$imgUrlTplBase.'", lpad(ci.id_image, 9, "0"), "O") as url_photo, ci.`mots_cles_texte` as tags_photo ';
63
	    
63
		
64
	    $requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
64
		$requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
65
	    $requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
65
		$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
66
	    
66
		
67
	    
67
		
68
	    $sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
68
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
69
	    $requete_recherche_images .= $sous_requete_recherche;
69
		$requete_recherche_images .= $sous_requete_recherche;
70
	    
70
		
71
	    if (!empty($ordre)) {
71
		if (!empty($ordre)) {
72
	        $requete_recherche_images .= ' ORDER BY '.$ordre.' '.$direction;
72
			$requete_recherche_images .= ' ORDER BY '.$ordre.' '.$direction;
73
	    }
73
		}
74
	    $requete_recherche_images .= ' LIMIT '.$debut.','.$limite;
74
		$requete_recherche_images .= ' LIMIT '.$debut.','.$limite;
75
	    
75
		
76
	    $resultats_images = array();
76
		$resultats_images = array();
77
	    $resultats_images = Cel::db()->requeter($requete_recherche_images);
77
		$resultats_images = Cel::db()->requeter($requete_recherche_images);
78
	    
78
		
Line 79... Line 79...
79
	    return $resultats_images;
79
		return $resultats_images;
80
	}
80
	}
81
 
81
 
Line 140... Line 140...
140
			'WHERE 1 ';
140
			'WHERE 1 ';
141
		return $requete;
141
		return $requete;
142
	}
142
	}
Line 143... Line 143...
143
	
143
	
144
	private function fabriquerRequeteJointureDblObs() {
144
	private function fabriquerRequeteJointureDblObs() {
145
	    $requete = 'FROM cel_images_export ci '.
145
		$requete = 'FROM cel_images_export ci '.
146
	   	    'JOIN cel_export_total co '.
146
			'JOIN cel_export_total co '.
147
	   	    'ON ci.ce_observation = co.id_observation '.
147
			'ON ci.ce_observation = co.id_observation '.
148
	   	    'WHERE 1 ';
148
			'WHERE 1 ';
149
	    return $requete;
149
		return $requete;
Line 150... Line 150...
150
	}
150
	}
151
 
151
 
152
	public function obtenirInformationsObservationsAssociees($id_utilisateur, $id_image) {
152
	public function obtenirInformationsObservationsAssociees($id_utilisateur, $id_image) {
Line 218... Line 218...
218
				case "transmission":
218
				case "transmission":
219
					$sous_requete .= 'co.transmission = '.Cel::db()->proteger($valeur) ;
219
					$sous_requete .= 'co.transmission = '.Cel::db()->proteger($valeur) ;
220
					$sous_requete .= ' AND ';
220
					$sous_requete .= ' AND ';
221
					break;
221
					break;
222
				case "standard":
222
				case "standard":
223
				    $sous_requete .= 'co.donnees_standard = '.Cel::db()->proteger($valeur) ;
223
					$sous_requete .= 'co.donnees_standard = '.Cel::db()->proteger($valeur) ;
224
				    $sous_requete .= ' AND ';
224
					$sous_requete .= ' AND ';
225
				    break;
225
					break;
226
				case "taxon":
226
				case "taxon":
227
					$valeur = str_replace('indetermine','null',$valeur);
227
					$valeur = str_replace('indetermine','null',$valeur);
228
					$sous_requete .= ' (';
228
					$sous_requete .= ' (';
229
					$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
229
					$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
230
					$sous_requete .= ' OR ' ;
230
					$sous_requete .= ' OR ' ;
Line 254... Line 254...
254
				case "famille":
254
				case "famille":
255
					$sous_requete .= 'co.famille = '.Cel::db()->proteger($valeur) ;
255
					$sous_requete .= 'co.famille = '.Cel::db()->proteger($valeur) ;
256
					$sous_requete .= ' AND ' ;
256
					$sous_requete .= ' AND ' ;
257
					break;
257
					break;
258
				case "tri":
258
				case "tri":
259
				    break;
259
					break;
260
				case "dir":
260
				case "dir":
261
				    break;
261
					break;
262
				default:
262
				default:
263
					$sous_requete .= 'ci.'.$nom.' = '.Cel::db()->proteger($valeur) ;
263
					$sous_requete .= 'ci.'.$nom.' = '.Cel::db()->proteger($valeur) ;
264
					$sous_requete .= ' AND ' ;
264
					$sous_requete .= ' AND ' ;
265
					break;
265
					break;
266
			}
266
			}