/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(); |
/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); |