Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 207 → Rev 210

/trunk/applications/jrest/services/OdsExport.php
99,6 → 99,14
return $condition;
}
public function getExportObservationPlat() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportCSV($donnees);
return $donnees_formatees ;
}
public function getExportObservationJson() {
$donnees = $this->getExportObservation();
156,20 → 164,13
return $resultats_formates;
}
public function getExportObservationCsv() {
$utilisateur = new Utilisateur();
$est_admin = $utilisateur->estAdmin();
if($est_admin) {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportCSV($donnees);
$chaine_csv = $this->convertirTableauAssocVersCSV($donnees_formatees);
public function getFichierExportObservationCsv() {
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterPourExportCSV($donnees);
$chaine_csv = $this->convertirTableauAssocVersCSV($donnees_formatees);
$this->envoyerFichier($chaine_csv);
} else {
echo "echo non non non non non, vous êtes pas admin !!!!";
}
$this->envoyerFichier($chaine_csv);
}
public function formaterPourExportCSV($tableau_observations_infos) {
180,6 → 181,8
$especes = $gestionnaire_especes->getToutesEspeces();
$evenements = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_EVENEMENTS);
$codes_insee_communes = array();
$resultats_formates = array();
foreach($tableau_observations_infos as $observations_infos) {
204,7 → 207,7
'nom_scientifique' => $nom_espece,
'station' => $observations_infos['os_nom'],
'code_commune' => $observations_infos['os_ce_commune'],
'nom_commune' => $gestionnaire_communes->obtenirNomCommuneParCodeInsee($observations_infos['os_ce_commune']),
'nom_commune' => '',
'latitude' => $observations_infos['os_latitude'],
'longitude' => $observations_infos['os_longitude'],
'altitude' => $observations_infos['os_altitude'],
213,8 → 216,22
);
$resultats_formates[] = $infos_formatees;
if(is_numeric($observations_infos['os_ce_commune'])) {
$codes_insee_communes[] = $observations_infos['os_ce_commune'];
}
}
$correspondance_codes_insee_noms = $gestionnaire_communes->obtenirTableauNomsCommunesParTableauCodesInsee($codes_insee_communes);
foreach($resultats_formates as &$resultat) {
if(isset($correspondance_codes_insee_noms[$resultat['code_commune']]) && trim($correspondance_codes_insee_noms[$resultat['code_commune']]) != '') {
$resultat['nom_commune'] = $correspondance_codes_insee_noms[$resultat['code_commune']];
}
}
return $resultats_formates;
}
/trunk/applications/jrest/services/OdsStation.php
149,27 → 149,23
* Méthode appelée pour supprimer un élément
*/
public function deleteElement($uid) {
// Pour le moment, pas de suppression des stations
return ;
if(!isset($uid[0])) {
if(isset($uid[0])) {
$id_participant = $uid[0];
} else {
return;
}
if(!isset($uid[1])) {
if(isset($uid[1])) {
$id_station = $uid[1];
} else {
return;
}
$requete_suppression_station = 'DELETE FROM ods_stations '.
'WHERE os_ce_particant = '.$this->proteger($id_participant).' '.
'WHERE os_ce_participant = '.$this->proteger($id_participant).' '.
'AND os_id_station = '.$this->proteger($id_station);
// TODO : supprimer également tout ce qui est associé à la station (observations, etc...)
$suppression_station = $this->executerRequeteSimple($requete_suppression_station);
if(!$suppression_station) {
180,9 → 176,6
}
// +---------------------------------------------------------------------------------------------------------------+
// METHODES D'ACCES A LA BASE DE DONNEES
private function obtenirListeStationPourParticipant($id_participant) {
$requete_liste_station = 'SELECT * FROM ods_stations WHERE os_ce_participant = '.$this->proteger($id_participant);
/trunk/applications/jrest/services/OdsObservation.php
54,7 → 54,7
$requete_liste_observation_individu = 'SELECT * FROM ods_observations '.
'WHERE oo_ce_individu ='.$this->proteger($id_individu).' '.
'ORDER BY oo_date';
'ORDER BY YEAR(oo_date) DESC, MONTH(oo_date) ASC, DAY(oo_date) ASC ';
$liste_observation_individu = $this->executerRequete($requete_liste_observation_individu);
/trunk/applications/jrest/services/OdsSyndicationObservation.php
30,6 → 30,8
private $squelette_dossier = null;
private $flux = array();
private $mode = 'normal';
/**
* Méthode appelée avec une requête de type GET.
*/
199,6 → 201,29
return $contenu;
}
private function getServiceModificationObservations() {
$this->mode = 'admin';
// Construction de la requête
$requete = 'SELECT * '.
'FROM ods_observations '.
'LEFT JOIN ods_individus '.
'ON ods_observations.oo_ce_individu = ods_individus.oi_id_individu '.
'LEFT JOIN ods_stations '.
'ON ods_individus.oi_ce_station = ods_stations.os_id_station '.
'WHERE oo_ce_participant != '.$this->config['appli']['id_participant_demo'].' '.
'AND oo_date_saisie != oo_date_modification '.
'ORDER BY oo_date_modification DESC '.
"LIMIT $this->start,$this->limit ";
$elements = $this->executerRequete($requete);
// Création du contenu
$contenu = $this->executerService($elements);
return $contenu;
}
private function executerService($elements) {
$contenu = '';
if (is_array($elements)) {
245,7 → 270,7
$item['date_creation_simple'] = strftime('%A %d %B %Y à %H:%M', strtotime($observation['oo_date_saisie']));
$item['titre'] = $this->creerTitre($observation);
$item['guid'] = $this->creerGuidItem($observation);
$item['lien'] = $this->creerLienItem($observation);
$item['lien'] = $this->creerUrlService();
$item['categorie'] = $this->creerCategorie($item);
$item['description'] = $this->creerDescription($this->protegerCaracteresHtmlDansChamps($observation), $item);
$item['description_encodee'] = htmlspecialchars($this->creerDescription($observation, $item));
292,7 → 317,7
private function creerAuteur($element) {
//TODO externaliser les champs dans le fichier de config
$requete_selection_auteur = 'SELECT name FROM drupal_users '.
$requete_selection_auteur = 'SELECT name FROM ods_redesign.drupal_users '.
'WHERE uid = '.$this->proteger($element);
$resultat_auteur = $this->executerRequete($requete_selection_auteur);
321,8 → 346,18
$lieu = $commune;
}
$description = "Observé à $lieu";
$description = "Observé à $lieu".'<br />';
if($this->mode == 'admin') {
$description .= ' Individu : '.$obs['oi_nom'].'<br />';
$description .= 'Station : '.$obs['os_nom'].'<br />';
$description .= 'Saisi le : '.$item['date_creation_simple'].'<br />';
$description .= 'Modifié le : '.$item['date_maj_simple'].'<br />';
}
$description = $this->nettoyerTexte($description);
return $description;
}
/trunk/applications/jrest/services/OdsCommune.php
196,6 → 196,23
return $infos_commune[0]['oc_nom'];
}
public function obtenirTableauNomsCommunesParTableauCodesInsee($tableau_codes_insee_communes) {
$chaine_codes_insee = implode($tableau_codes_insee_communes,',');
$requete_infos_communes = 'SELECT * FROM ods_communes WHERE oc_code_insee IN ('.$chaine_codes_insee.')';
$infos_commune = $this->executerRequete($requete_infos_communes);
$noms_communes = array();
foreach($infos_commune as $commune) {
$code_insee = $commune['oc_code_insee'];
$noms_communes[$code_insee] = $commune['oc_nom'];
}
return $noms_communes;
}
private function obtenirCodeInseeCommune($commune, $cp) {
$commune = $this->remplacerNomCommunePourRecherche($commune);
/trunk/applications/jrest/services/OdsEspece.php
123,7 → 123,7
'SELECT oi_ce_espece FROM ods_individus '.
'WHERE oi_ce_station = '.$this->proteger($id_station).
') '.
'ORDER BY oe_ce_type';
'ORDER BY oe_ce_type, oe_nom_vernaculaire';
 
$especes_pour_station = $this->executerRequete($requete_especes_pour_station);
138,7 → 138,7
private function getEspecesParType() {
$requete_toute_espece = 'SELECT * FROM ods_especes ORDER BY oe_ce_type';
$requete_toute_espece = 'SELECT * FROM ods_especes ORDER BY oe_ce_type, oe_nom_vernaculaire';
$liste_espece = $this->executerRequete($requete_toute_espece);
$liste_type_espece = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_TYPE_ESPECE);
167,7 → 167,7
public function getToutesEspeces() {
$requete_toute_espece = 'SELECT * FROM ods_especes';
$requete_toute_espece = 'SELECT * FROM ods_especes ORDER BY oe_nom_vernaculaire';
$liste_espece = $this->executerRequete($requete_toute_espece);
$liste_type_espece = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_TYPE_ESPECE);
/trunk/applications/jrest/services/OdsUtilisateur.php
8,10 → 8,37
*/
function getElement($param = array()) {
$chaine_utilisateur = $param[0];
// Envoi sur la sortie standard
$this->envoyer($info);
$chaine_utilisateur = $param[0];
$liste_utilisateurs = $this->getListeUtilisateur($chaine_utilisateur);
$liste_utilisateurs_formatee = $this->formaterListeUtilisateursPourEnvoi($liste_utilisateurs);
$this->envoyer($liste_utilisateurs_formatee);
}
function getListeUtilisateur($pseudo) {
$requete_selection_liste = 'SELECT * '.
'FROM drupal_users '.
'WHERE name LIKE "'.$pseudo.'%" '.
'ORDER BY name '.
'LIMIT 0, 20';
$liste_utilisateurs = $this->executerRequete($requete_selection_liste);
return $liste_utilisateurs;
}
function formaterListeUtilisateursPourEnvoi($liste_utilisateurs) {
$liste_utilisateurs_formatee = array();
foreach($liste_utilisateurs as $utilisateur) {
$liste_utilisateurs_formatee[] = array('nom' => $utilisateur['name'], 'id' => $utilisateur['uid']);
}
return $liste_utilisateurs_formatee;
}
}
 
/trunk/applications/jrest/services/OdsIndividu.php
69,19 → 69,19
* Méthode appelée pour mettre à jour un élément
*/
public function updateElement($uid, $params) {
//Mise à jour de la personne
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
if(isset($uid[0])) {
$id_individu = $uid[0];
} else {
return;
}
$requete_modification_individu = 'UPDATE ods_individus '.
'SET oi_nom = '.$this->proteger($params['individu_nom']).' '.
'WHERE oi_id_individu = '.$this->proteger($id_individu);
$modification_individu = $this->executerRequeteSimple($requete_modification_individu);
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
try {
 
} catch (PDOException $e) {
$messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
$this->envoyer();
}
89,28 → 89,31
* Méthode appelée pour supprimer un élément
*/
public function deleteElement($uid) {
// Vérification de la présence des id passés par l'url
if (!isset($uid[0]) || !isset($uid[1])) {
$this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
} else {
list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
// Récupération des id passés par l'url
$identifiants = explode(',', rtrim($uid[1], ','));
if (count($identifiants) == 0) {
$this->messages[] = "Aucun enregistrement n'a été supprimé.";
} else {
foreach ($identifiants as $id_personne) {
try {
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
}
}
}
if(isset($uid[0])) {
$id_participant = $uid[0];
} else {
return;
}
if(isset($uid[1])) {
$id_individu = $uid[1];
} else {
return;
}
$requete_suppression_individu = 'DELETE FROM ods_individus '.
'WHERE oi_id_individu = '.$this->proteger($id_individu).' '.
'AND oi_ce_station IN '.
'(SELECT os_id_station FROM ods_stations '.
'WHERE os_ce_participant = '.$this->proteger($id_participant).' '.
')';
$suppression_individu = $this->executerRequeteSimple($requete_suppression_individu);
if(!$suppression_individu) {
// TODO: comment gère t'on les erreurs ?
}
// Envoie sur la sortie standard
$this->envoyer();