Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 269 → Rev 270

/trunk/applications/stations/index.php
30,6 → 30,8
</div>
</div>
<div id="conteneur_nb_stations">
</div>
<div class="conteneur_carte">
<div id="map_canvas" style="width:600px;height:600px">
/trunk/applications/stations/stations.js
5,7 → 5,7
var infowindow = new google.maps.InfoWindow();
 
function getUrlBaseJrest() {
return 'http://162.38.234.9/obs_saisons/applications/jrest/';
return 'http://localhost/obs_saisons/applications/jrest/';
}
 
function initialiserCarte() {
37,11 → 37,13
$.get(getUrlBaseJrest()+'OdsExport/ExportStationJson/', function(data) {
infos_stations = data;
var infos_stations = data.stations;
var stats = data.stats;
for(i in infos_stations) {
creerEtAjouterMarqueur(i, infos_stations[i]);
}
mettreAJourStats(stats);
});
}
 
53,24 → 55,31
return image;
}
 
function mettreAJourStats(stats) {
for(i in stats) {
if(i != 'total') {
var id_legende = '#type_'+i.removeDiacritics().replace(' ','_');
var legende = $(id_legende).text();
$(id_legende).text(legende+' ('+stats[i]+')');
} else {
$('#conteneur_nb_stations').text(stats[i]+' stations au total');
}
}
}
 
function creerEtAjouterMarqueur(id_marqueur, infos_station) {
latlng = new google.maps.LatLng(infos_station['latitude'],infos_station['longitude']);
var chaine_couleur = tableau_couleurs[infos_station['type_participant']];
for(i in infos_stations.especes) {
}
var chaine_couleur = tableau_couleurs[infos_station['type_participant']];
var image = obtenirImagePourChaineCouleur(chaine_couleur);
var nom_station = infos_station['nom'];
var marqueur_station = new google.maps.Marker({
position: latlng,
icon:image,
title:infos_station.station,
optimized: false
title:nom_station,
optimized: true
});
 
google.maps.event.addListener(marqueur_station, 'click', function() {
90,41 → 99,20
function formaterContenuFenetre(infos_station) {
var contenu_fenetre = "";
contenu_fenetre = "<h3> "+infos_station.station+"</h3>";
contenu_fenetre += '<div class="infos_participant"> Participant : '+construireUrlProfilParticipant(infos_station.id_participant,infos_station.pseudo_participant)+'</div>';
contenu_fenetre = "<h3> "+infos_station['nom']+"</h3>";
contenu_fenetre += '<div class="infos_participant"> Participant : '+construireUrlProfilParticipant(infos_station['participant'])+'</div>';
contenu_fenetre += '<div class="infos_commune"> ';
if(infos_station.nom_commune != null && infos_station.nom_commune != "") {
contenu_fenetre += 'Commune : '+infos_station.nom_commune;
if(infos_station['nom_commune'] != null && infos_station['nom_commune'] != "") {
contenu_fenetre += 'Commune : '+infos_station['nom_commune'];
}
if(infos_station.code_commune != null && infos_station.code_commune != "") {
contenu_fenetre += ' ('+infos_station.code_commune+')';
if(infos_station['code_commune'] != null && infos_station['code_commune'] != "") {
contenu_fenetre += ' ('+infos_station['code_commune']+')';
}
contenu_fenetre += '</div>';
contenu_fenetre += '<div class="infos_altitude"> Altitude : '+infos_station.altitude+' m</div>';
console.log(infos_station.especes);
contenu_fenetre_espece = '';
if(infos_station.especes != null) {
for(var i in infos_station.especes) {
contenu_fenetre_espece += '<li>'+infos_station.especes[i].nom_vernaculaire+'</li>';
}
contenu_fenetre += '<div class="infos_altitude"> Altitude : '+infos_station['altitude']+' m</div>';
 
}
if(contenu_fenetre_espece != '') {
contenu_fenetre += '<div class="infos_especes"> Especes observées :';
contenu_fenetre += '<ul>'+contenu_fenetre_espece+'</ul>';
contenu_fenetre += '</div>';
}
return contenu_fenetre;
}
 
134,7 → 122,7
for(i in tableau_couleurs) {
chaine_legende += '<span class="legende" style="background-color:'+tableau_couleurs[i]+'"></span>';
chaine_legende += '<label for="type_'+i+'">'+i+'</label><br />';
chaine_legende += '<label id="type_'+i.removeDiacritics().replace(' ','_')+'">'+i+'</label><br />';
}
chaine_legende += '</div>';
150,14 → 138,18
return image;
}
 
function construireUrlProfilParticipant(id, pseudo) {
function construireUrlProfilParticipant(participant) {
if(id == null && pseudo == null) {
if(participant['id'] == null && participant['nom'] == null) {
return "anonyme";
}
if(pseudo == null || pseudo == "null") {
pseudo = id;
var id = participant['id'];
if(participant['nom'] == null || participant['nom'] == "null") {
var pseudo = participant['id'];
} else {
var pseudo = participant['nom'];
}
return '<a class="lien_vers_profil" href="http://obs-saisons.fr/user/'+id+'"> '+pseudo+' </a>';
166,4 → 158,28
$('#map_canvas').ready(function() {
initialiserCarte();
genererLegende();
});
});
 
String.prototype.removeDiacritics = function() {
var diacritics = [
[/[\300-\306]/g, 'A'],
[/[\340-\346]/g, 'a'],
[/[\310-\313]/g, 'E'],
[/[\350-\353]/g, 'e'],
[/[\314-\317]/g, 'I'],
[/[\354-\357]/g, 'i'],
[/[\322-\330]/g, 'O'],
[/[\362-\370]/g, 'o'],
[/[\331-\334]/g, 'U'],
[/[\371-\374]/g, 'u'],
[/[\321]/g, 'N'],
[/[\361]/g, 'n'],
[/[\307]/g, 'C'],
[/[\347]/g, 'c'],
];
var s = this;
for (var i = 0; i < diacritics.length; i++) {
s = s.replace(diacritics[i][0], diacritics[i][1]);
}
return s;
}
/trunk/applications/jrest/services/OdsExport.php
33,8 → 33,74
}
}
 
$this->envoyer($info,$this->type_mime);
$this->envoyer($info,$this->type_mime);
}
public function getExportStationJson() {
$donnees = $this->getExportStation();
$donnees_formatees = $this->formaterListeStationPourExportJson($donnees);
$this->type_mime = 'application/json';
return $donnees_formatees;
}
public function getExportStation($start = null,$limit = null, $order_by = 'oo_date') {
$requete_selection_stations = 'SELECT * FROM ods_stations ';
$res_selection_stations = $this->executerRequete($requete_selection_stations);
return $res_selection_stations;
}
public function formaterListeStationPourExportJson($tableau_stations_infos) {
$gestionnaire_especes = new OdsEspece($this->config);
$gestionnaire_communes = new OdsCommune($this->config);
$gestionnaire_utilisateurs = new OdsUtilisateur($this->config);
$especes = $gestionnaire_especes->getToutesEspeces();
$evenements = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_EVENEMENTS);
$milieux = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_MILIEUX);
$utilisateurs = $gestionnaire_utilisateurs->getListeUtilisateurAvecInfosComplementairesFormateeId();
$communes = $gestionnaire_communes->obtenirCommunesLieesAStationIndexeesCodeInsee();
$resultats_formates = array();
$stats = array('total' => count($tableau_stations_infos));
foreach($tableau_stations_infos as $stations_infos) {
$commune = isset($communes[$stations_infos['os_ce_commune']]['oc_nom']) ? $communes[$stations_infos['os_ce_commune']]['oc_nom'] : '';
$id_station = $stations_infos['os_id_station'];
$resultats_formates[$id_station]['nom'] = $stations_infos['os_nom'];
$resultats_formates[$id_station]['code_commune'] = is_numeric($stations_infos['os_ce_commune']) ? substr($stations_infos['os_ce_commune'], 0, 2) : '';
$resultats_formates[$id_station]['nom_commune'] = $commune;
$resultats_formates[$id_station]['latitude'] = $stations_infos['os_latitude'];
$resultats_formates[$id_station]['longitude'] = $stations_infos['os_longitude'];
$resultats_formates[$id_station]['altitude'] = $stations_infos['os_altitude'];
$resultats_formates[$id_station]['type_participant'] = 'Particulier';
if(isset($utilisateurs[$stations_infos['os_ce_participant']])) {
$participant = $utilisateurs[$stations_infos['os_ce_participant']];
$resultats_formates[$id_station]['participant']['id'] = $participant['uid'];
$resultats_formates[$id_station]['participant']['nom'] = $participant['name'];
$resultats_formates[$id_station]['type_participant'] = isset($participant['profile_type']) ? $participant['profile_type'] : 'Particulier';
} else {
$resultats_formates[$id_station]['participant']['id'] = null;
$resultats_formates[$id_station]['participant']['nom'] = 'Anonyme';
$resultats_formates[$id_station]['type_participant'] = 'Particulier';
}
if(isset($stats[$resultats_formates[$id_station]['type_participant']])) {
$stats[$resultats_formates[$id_station]['type_participant']]++;
} else {
$stats[$resultats_formates[$id_station]['type_participant']] = 1;
}
}
$resultat = array('stats' => $stats, 'stations' => $resultats_formates);
return $resultat;
}
public function getExportObservation($start = null,$limit = null, $order_by = 'oo_date') {
54,13 → 120,13
return $res_selection_observations;
}
private function creerFiltreIdZoneGeo($valeurMasque) {
$masque = '';
$dept = $valeurMasque;
$dept = sprintf('%02s', $dept);
$dept = sprintf("%-'_5s", $dept);
$masque = " oc_code_insee LIKE ".$this->proteger($dept);
return $masque;
private function creerFiltreIdZoneGeo($valeurMasque) {
$masque = '';
$dept = $valeurMasque;
$dept = sprintf('%02s', $dept);
$dept = sprintf("%-'_5s", $dept);
$masque = " oc_code_insee LIKE ".$this->proteger($dept);
return $masque;
}
public function construireConditionRequete() {
141,7 → 207,7
public function getExportObservationPlat() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportCSV($donnees);
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees);
return $donnees_formatees ;
}
149,7 → 215,7
public function getExportObservationJson() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportJson($donnees);
$donnees_formatees = $this->formaterListeObservationPourExportJson($donnees);
 
$this->type_mime = 'application/json';
156,7 → 222,7
return $donnees_formatees;
}
public function formaterPourExportJson($tableau_observations_infos) {
public function formaterListeObservationPourExportJson($tableau_observations_infos) {
$gestionnaire_especes = new OdsEspece($this->config);
$gestionnaire_communes = new OdsCommune($this->config);
211,13 → 277,13
public function getFichierExportObservationCsv() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportCSV($donnees);
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees);
$chaine_csv = $this->convertirTableauAssocVersCSV($donnees_formatees);
$this->envoyerFichier($chaine_csv);
}
public function formaterPourExportCSV($tableau_observations_infos) {
public function formaterListeObservationPourExportCSV($tableau_observations_infos) {
$gestionnaire_especes = new OdsEspece($this->config);
$gestionnaire_communes = new OdsCommune($this->config);
/trunk/applications/jrest/services/OdsCommune.php
228,5 → 228,27
return '';
}
}
public function obtenirCommunesLieesAStationIndexeesCodeInsee() {
$communes = $this->obtenirCommunesLieesAStation();
$communes_assoc = array();
foreach($communes as $commune) {
$communes_assoc[$commune['oc_code_insee']] = $commune;
}
return $communes_assoc;
}
private function obtenirCommunesLieesAStation() {
$requete = 'SELECT * FROM ods_communes '.
'INNER JOIN ods_stations '.
'ON oc_code_insee = os_ce_commune ';
$resultat_requete = $this->executerRequete($requete);
return $resultat_requete;
}
}
?>
/trunk/applications/jrest/services/OdsUtilisateur.php
73,6 → 73,8
foreach ($liste_infos_complementaires_formatee[$utilisateur['uid']] as &$infos_complementaires_formatee_utilisateur) {
$liste_utilisateurs_formatee[$utilisateur['uid']][$infos_complementaires_formatee_utilisateur['name']] = $infos_complementaires_formatee_utilisateur['value'];
}
} else {
$liste_utilisateurs_formatee[$utilisateur['uid']] = $utilisateur;
}
}
}