Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 319 → Rev 320

/trunk/applications/jrest/services/OdsExport.php
1,7 → 1,7
<?php
 
class OdsExport extends OdsTriple {
 
const PREFIXE = 'get';
const ABBR_LISTE_EVENEMENTS = 'evenement';
const ABBR_LISTE_ESPECES = 'espece';
8,19 → 8,19
const ABBR_LISTE_MILIEUX = 'environnement';
 
private $type_mime = 'text/html';
 
/**
* Méthodes d'extractions d'informations
*/
 
/**
* Méthode appelée avec une requête de type GET.
*
*/
function getElement($param = array()) {
 
$type = $param[0];
 
if ($type == '*' || is_numeric($type)) {
$info = $this->getElementParDefaut($param);
} else {
35,40 → 35,40
 
$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') {
 
$id_demo = $this->config['appli']['id_participant_demo'];
$requete_selection_stations = 'SELECT * FROM ods_stations WHERE os_ce_participant != '.$this->proteger($id_demo);
$requete_selection_stations = 'SELECT * FROM ods_stations WHERE os_ce_participant != '.$this->proteger($id_demo);
$res_selection_stations = $this->executerRequete($requete_selection_stations);
 
return $res_selection_stations;
}
 
public function getExportUtilisateurCsv() {
 
$controle = new ControleUtilisateur($this->config);
$controle->authentifierAdmin();
 
$gestionnaire_utilisateurs = new OdsUtilisateur($this->config);
$utilisateurs = $gestionnaire_utilisateurs->getListeUtilisateurAvecInfosComplementairesFormateeId();
 
$utilisateurs_formates = array();
$premiere_annee = 2006;
 
$nb_obs = $this->compterObservationsParUtilisateur();
$annees = array();
 
foreach ($utilisateurs as $id => $utilisateur) {
$utilisateur_formate = array(
'id' => isset($utilisateur['uid']) ? $utilisateur['uid'] : '',
81,15 → 81,15
'type' => isset($utilisateur['profile_type']) ? $utilisateur['profile_type'] : '',
'date inscription' => isset($utilisateur['created']) ? date('d/m/Y', $utilisateur['created']) : '',
);
 
for($i = $premiere_annee; $i <= date('Y'); $i++) {
$annees['annee '.$i] += isset($nb_obs[$utilisateur['uid']]) && isset($nb_obs[$utilisateur['uid']][$i]) ? $nb_obs[$utilisateur['uid']][$i] : '0';
$utilisateur_formate['annee '.$i] = isset($nb_obs[$utilisateur['uid']]) && isset($nb_obs[$utilisateur['uid']][$i]) ? $nb_obs[$utilisateur['uid']][$i] : '0';
}
 
$utilisateurs_formates[] = $utilisateur_formate;
}
 
$ligne_total_obs = array(
'id' => '',
'pseudo' => '',
106,38 → 106,38
$csv = $this->convertirTableauAssocVersCSV($utilisateurs_formates);
$this->envoyerFichier($csv, 'utilisateurs');
}
 
private function compterObservationsParUtilisateur() {
$requete = 'SELECT COUNT(*) as nb_obs, oo_ce_participant as participant, YEAR(oo_date) as annee '.
'FROM `ods_observations` WHERE oo_date != "0000-00-00" GROUP BY oo_ce_participant, YEAR(oo_date)';
 
$res_selection_obs = $this->executerRequete($requete);
$stats = array();
foreach ($res_selection_obs as $obs_nb) {
$stats[$obs_nb['participant']][$obs_nb['annee']] = $obs_nb['nb_obs'];
}
 
return $stats;
}
 
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) {
 
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) : '';
146,7 → 146,7
$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'];
163,14 → 163,14
$stats[$resultats_formates[$id_station]['type_participant']] = 1;
}
}
$resultat = array('stats' => $stats, 'stations' => $resultats_formates);
$resultat = array('stats' => $stats, 'stations' => $resultats_formates);
return $resultat;
}
 
public function getExportObservation($start = null,$limit = null, $order_by = 'oo_date') {
 
$requete_selection_observations = 'SELECT oo.*, oi.*, os.*, oc.* FROM ods_observations oo'.
' LEFT JOIN ods_individus oi'.
' LEFT JOIN ods_individus oi'.
' ON oi_id_individu = oo_ce_individu'.
' INNER JOIN ods_especes oe'.
' ON oe.oe_espece_active = 1 '.
187,7 → 187,7
 
return $res_selection_observations;
}
 
private function creerFiltreIdZoneGeo($valeurMasque) {
$masque = '';
$dept = $valeurMasque;
196,49 → 196,49
$masque = " oc_code_insee LIKE ".$this->proteger($dept);
return $masque;
}
 
public function construireConditionRequete() {
 
$condition = ' WHERE oo_date != "0000-00-00" AND DAY(oo_date) != "00" AND ';
 
foreach($_GET as $cle => $valeur) {
 
switch($cle) {
 
case 'type_espece':
$condition .= 'oi_ce_espece IN (SELECT oe_id_espece FROM ods_especes WHERE oe_ce_type = '.$this->proteger($valeur).')';
break;
 
case 'annee':
if($this->anneesMultiplesDemandees($valeur)) {
$valeur = rtrim($valeur,',');
$condition .= 'YEAR(oo_date) IN ('.$valeur.')';
$condition .= 'YEAR(oo_date) IN ('.$valeur.')';
} else {
$condition .= 'YEAR(oo_date) ';
$condition .= ' = '.$this->proteger($valeur);
}
break;
 
case 'mois':
$condition .= 'MONTH(oo_date) <= '.$this->proteger($valeur);
break;
 
case 'espece':
$condition .= 'oi_ce_espece IN ('.$valeur.') ';
break;
 
case 'evenement':
$condition .= 'oo_ce_evenement = '.$this->proteger($valeur);
break;
 
case 'utilisateur':
$condition .= 'oo_ce_participant = '.$this->proteger($valeur);
$condition .= 'oo_ce_participant = '.$this->proteger($valeur);
break;
 
case 'departement' :
$condition .= $this->creerFiltreIdZoneGeo($valeur);
break;
 
case 'region' :
$requete_association_region .= 'SELECT * FROM ods_triples WHERE ot_ce_parent = 36 AND ot_valeur = '.$valeur;
$listeAssociationRegions = $this->executerRequete($requete_association_region);
250,21 → 250,21
break;
default:
}
 
$condition .= ' AND ';
}
 
$condition = rtrim($condition,'AND ');
 
$id_demo = $this->config['appli']['id_participant_demo'];
$id_admin = $this->config['appli']['id_participant_admin'];
 
$condition .= ' AND oo_ce_participant != '.$id_demo;
$condition .= ' AND oo_ce_participant != '.$id_admin;
 
return $condition;
}
 
private function anneesMultiplesDemandees($annee) {
// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
// sans virgule terminale
271,51 → 271,51
$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
return preg_match($reg_exp, $annee);
}
 
public function getExportObservationPlat() {
 
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees);
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees);
 
return $donnees_formatees ;
}
 
public function getExportObservationJson() {
 
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterListeObservationPourExportJson($donnees);
 
$this->type_mime = 'application/json';
 
return $donnees_formatees;
}
 
public function formaterListeObservationPourExportJson($tableau_observations_infos) {
 
$gestionnaire_especes = new OdsEspece($this->config);
$gestionnaire_communes = new OdsCommune($this->config);
 
$especes = $gestionnaire_especes->getToutesEspeces();
$evenements = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_EVENEMENTS);
$milieux = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_MILIEUX);
 
$resultats_formates = array();
 
foreach($tableau_observations_infos as $observations_infos) {
 
$id_espece = $observations_infos['oi_ce_espece'];
if($id_espece == 0) {
continue;
}
$nom_espece = $especes[$id_espece]['nom_scientifique'];
 
$id_evenement = $observations_infos['oo_ce_evenement'];
$chaine_evenement = $evenements[$id_evenement]['ot_cle'];
 
$infos_evenement = $this->renvoyerInformationStadeAPartirChaineTriple($chaine_evenement);
 
$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observations_infos['oo_date']));
 
$id_observation = $observations_infos['oo_id_observation'];
$infos_formatees = array(
'date' => $date_observation_formatee,
325,9 → 325,9
'id_espece' => $id_espece,
'participant' => $observations_infos['os_ce_participant']
);
 
$id_station = $observations_infos['oi_ce_station'];
 
if(!isset($resultats_formates[$id_station])) {
$resultats_formates[$id_station]['station'] = $observations_infos['os_nom'];
$resultats_formates[$id_station]['code_commune'] = $observations_infos['os_ce_commune'];
342,52 → 342,53
}
$resultats_formates[$id_station]['participant'] = $observations_infos['os_ce_participant'];
}
 
$resultats_formates[$id_station]['obs'][$id_observation] = $infos_formatees;
}
 
return $resultats_formates;
}
 
public function getFichierExportObservationCsv() {
 
$donnees = $this->getExportObservation();
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees);
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees);
$chaine_csv = $this->convertirTableauAssocVersCSV($donnees_formatees);
 
$this->envoyerFichier($chaine_csv);
}
 
public function formaterListeObservationPourExportCSV($tableau_observations_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);
 
$codes_insee_communes = array();
 
$resultats_formates = array();
foreach($tableau_observations_infos as $observations_infos) {
 
$id_espece = $observations_infos['oi_ce_espece'];
$nom_espece = $especes[$id_espece]['nom_scientifique'];
 
$id_evenement = $observations_infos['oo_ce_evenement'];
$chaine_evenement = $evenements[$id_evenement]['ot_cle'];
 
$infos_evenement = $this->renvoyerInformationStadeAPartirChaineTriple($chaine_evenement);
 
$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observations_infos['oo_date']));
 
$id_observation = $observations_infos['oo_id_observation'];
$milieu = isset($milieux[$observations_infos['os_ce_environnement']]['ot_valeur']) ? $milieux[$observations_infos['os_ce_environnement']]['ot_valeur'] : '';
 
$infos_formatees = array(
'id_observation' => $id_observation,
'id_individu' => $observations_infos['oo_ce_individu'],
'date' => $date_observation_formatee,
'evenenement' => $infos_evenement['nom'],
'code_bbch' => $infos_evenement['numero'],
403,9 → 404,9
'pseudo_participant' => '',
'mail_participant' => ''
);
 
$resultats_formates[] = $infos_formatees;
 
if(is_numeric($observations_infos['os_ce_commune'])) {
$codes_insee_communes[] = $observations_infos['os_ce_commune'];
}
413,26 → 414,26
 
$correspondance_codes_insee_noms = $gestionnaire_communes->obtenirTableauNomsCommunesParTableauCodesInsee($codes_insee_communes);
$correspondance_id_utilisateur = $gestionnaire_utilisateurs->getListeUtilisateurFormateeId();
 
foreach($resultats_formates as &$resultat) {
if(isset($correspondance_codes_insee_noms[$resultat['code_commune']]) && trim($correspondance_codes_insee_noms[$resultat['code_commune']]) != '') {
 
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']];
}
 
$resultat['pseudo_participant'] = isset($correspondance_id_utilisateur[$resultat['id_participant']]) ? $correspondance_id_utilisateur[$resultat['id_participant']]['name'] : '';
$resultat['mail_participant'] = isset($correspondance_id_utilisateur[$resultat['id_participant']]) ? $correspondance_id_utilisateur[$resultat['id_participant']]['mail'] : '';
}
 
return $resultats_formates;
}
 
public function convertirTableauAssocVersCSV($tableau) {
 
$csv = '';
$colonnes = array_keys($tableau[0]);
$csv .= implode(';',$colonnes).";\n";
 
foreach($tableau as $elements) {
$ligne = "";
// parcours des cases de chaque ligne nécessaire car si on utilise implode
442,39 → 443,39
}
$csv .= $ligne."\n";
}
 
return $csv;
}
 
public function envoyerFichier($contenu, $nom = 'observations_export') {
 
$nom_fichier = $nom.".csv";
$chemin_fichier = $this->config['appli']['chemin_fichiers_temp'].'/'.$nom_fichier;
file_put_contents($chemin_fichier, $contenu);
 
file_put_contents($chemin_fichier, $contenu);
 
$contenu = file_get_contents($chemin_fichier);
$taille_fichier = filesize($chemin_fichier);
 
unlink($chemin_fichier);
 
ini_set('zlib.output_compression','Off');
 
header('Pragma: public');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
 
header('Content-Tranfer-Encoding: none');
 
header('Content-Type: application/octetstream; name="'.$nom_fichier.'"');
header('Content-Disposition: attachement; filename="'.$nom_fichier.'"');
 
header('Content-Length: '.$taille_fichier);
 
echo $contenu;
exit();
}
 
private function formaterInformationPourEnvoi($tableauinfos) {
 
}
/trunk/applications/jrest/services/OdsObservation.php
4,20 → 4,20
 
const PREFIXE = 'get';
const ABBR_LISTE_EVENEMENTS = 'evenement';
 
 
/**
* Méthodes d'extractions d'informations
*/
 
/**
* Méthode appelée avec une requête de type GET.
*
*/
function getElement($param = array()) {
 
$type = $param[0];
 
if ($type == '*' || is_numeric($type)) {
$info = $this->getElementParDefaut($param);
} else {
32,138 → 32,149
 
$this->envoyer($info);
}
 
private function getElementParDefaut($params) {
 
}
 
private function getObservationsPourStation($params) {
 
$id_station = isset($params[0]) ? $params[0] : '';
$annee = isset($params[1]) ? $params[1] : '';
 
return ;
 
}
 
private function getObservationsPourIndividu($params) {
 
$id_individu = isset($params[0]) ? $params[0] : '';
$annee = isset($params[1]) ? $params[1] : '';
 
$requete_liste_observation_individu = 'SELECT * FROM ods_observations '.
'WHERE oo_ce_individu ='.$this->proteger($id_individu).' '.
'AND DAY(oo_date) != "00" '.
'ORDER BY YEAR(oo_date) DESC, MONTH(oo_date) ASC, DAY(oo_date) ASC ';
'ORDER BY YEAR(oo_date) DESC, MONTH(oo_date) ASC, DAY(oo_date) ASC ';
 
$liste_observation_individu = $this->executerRequete($requete_liste_observation_individu);
 
$liste_observation_individu_formatees = array();
 
foreach($liste_observation_individu as $observation_individu) {
 
$annee_obs = date("Y",strtotime($observation_individu['oo_date']));
$stade_observation_complet = $this->getInformationEvenementParId($observation_individu['oo_ce_evenement']);
 
$abbr_stade_observation = $stade_observation_complet['ot_cle'];
 
$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($abbr_stade_observation);
 
$titre_stade = $infos_stades['nom'];
$numero_stade = $infos_stades['numero'];
$abreviation_stade = $infos_stades['abreviation'];
 
$tableau_date = date_parse($observation_individu['oo_date']);
 
if(!$this->estUneDateInvalide($tableau_date['day'], $tableau_date['month'], $tableau_date['year'])) {
 
$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observation_individu['oo_date']));
$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade] = $date_observation_formatee;
$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade] = $date_observation_formatee;
 
$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade][$observation_individu['oo_id_observation']] = $date_observation_formatee;
}
 
}
 
krsort($liste_observation_individu_formatees);
 
return $liste_observation_individu_formatees;
}
 
/**
* Méthodes de création et modification d'informations
*/
*/
 
/**
* Méthode appelée pour mettre à jour un élément
*/
public function updateElement($uid, $params) {
$elements_requis = array('id_participant','id_individu');
 
$elements_requis = array('id_participant','id_individu', 'id_evenement', 'date_evenement');
$erreurs = array();
 
foreach($elements_requis as $requis) {
if(!isset($params[$requis])) {
$erreurs[$requis] = 'erreur ';
}
}
 
if(!isset($params['annee_en_cours'])) {
$annee_en_cours = date('Y');
} else {
$annee_en_cours = $params['annee_en_cours'];
}
 
if(!empty($erreurs)) {
$this->envoyer($erreurs);
exit;
}
 
$id_participant = $params['id_participant'];
unset($params['id_participant']);
$id_individu = $params['id_individu'];
unset($params['id_individu']);
$requete_obs_deja_saisies_cette_annee = 'SELECT * FROM ods_observations WHERE oo_ce_individu = '.$this->proteger($id_individu).' '.
'AND oo_ce_participant = '.$this->proteger($id_participant).' '.
'AND YEAR(oo_date) = '.$this->proteger($annee_en_cours);
 
$obs_deja_saisies_cette_annee = $this->executerRequete($requete_obs_deja_saisies_cette_annee);
foreach($params as $cle => $valeur) {
if($est_une_valeur_obs = $this->renvoyerIdEvenementSiChampDeFormulaireObservation($cle)) {
$valeur = $this->formaterDateObservationPourBdd($valeur);
$obs_a_traiter = array('date_evenement' => $valeur,
'id_evenement' => $est_une_valeur_obs,
'id_individu' => $id_individu,
'commentaire' => '');
if($a_modifier_ou_inserer = $this->renvoyerIdObservationSiEvenementDejaObserveCetteAnnee($est_une_valeur_obs,$obs_deja_saisies_cette_annee)) {
$obs_a_traiter['id_observation'] = $a_modifier_ou_inserer;
$this->modifierObservation($id_participant, $obs_a_traiter);
} else {
$this->insererObservation($id_participant, $obs_a_traiter);
}
}
$a_modifier_ou_inserer = !empty($params['id_observation']) ? $params['id_observation'] : false;
$retour = array();
 
$date_evenement = $this->formaterDateObservationPourBdd($params['date_evenement']);
 
// dans le cas des ajouts ou modifications on vérifie que l'on insère pas une date
// déjà existante, car ça n'a pas de sens pour un même individu et stade
if (strpos($date_evenement, '00-00') === false) {
$requete_existe_avec_cette_date = 'SELECT * FROM ods_observations '.
'WHERE oo_ce_participant = '.$this->proteger($id_participant).' AND '.
'oo_ce_individu = '.$this->proteger($id_individu).' AND '.
'oo_ce_evenement = '.$this->proteger($params['id_evenement']).' AND '.
'oo_date = '.$this->proteger($date_evenement);
$resultat_requete_existe_avec_cette_date = $this->executerRequete($requete_existe_avec_cette_date);
 
if(!empty($resultat_requete_existe_avec_cette_date)) {
$this->envoyer([
'erreurs' => [
'date' => 'Une observation à cette date existe déjà pour ce stade et cet individu'
]
]);
exit;
}
}
 
$obs_a_traiter = array(
'date_evenement' => $date_evenement,
'id_evenement' => $params['id_evenement'],
'id_individu' => $params['id_individu'],
'commentaire' => '');
 
if($a_modifier_ou_inserer) {
$obs_a_traiter['id_observation'] = $a_modifier_ou_inserer;
$this->modifierObservation($id_participant, $obs_a_traiter);
} else {
$retour = ['id_observation' => $this->insererObservation($id_participant, $obs_a_traiter)];
}
$this->envoyer();
 
$this->envoyer($retour);
}
 
private function insererObservation($id_participant, $donnees_obs_a_inserer) {
 
$nouvel_ordre = 1;
 
$requete_max_ordre = 'SELECT MAX(oo_ordre) as max_ordre FROM ods_observations WHERE '.
'oo_ce_participant = '.$this->proteger($id_participant);
 
$resultat_requete_ordre = $this->executerRequete($requete_max_ordre);
 
if(count($resultat_requete_ordre) > 0) {
$nouvel_ordre = $resultat_requete_ordre[0]['max_ordre'] + 1;
$nouvel_ordre = $resultat_requete_ordre[0]['max_ordre'] + 1;
}
 
$requete_nouvelle_observation = 'INSERT INTO ods_observations '.
'(oo_ce_participant, oo_ordre, oo_ce_individu, oo_ce_evenement, oo_date, oo_commentaire, oo_date_saisie, oo_date_modification) '.
'VALUES '.
176,88 → 187,84
'"",'.
'NOW(),'.
'NOW()'.
')';
return $this->executerRequeteSimple($requete_nouvelle_observation);
')';
 
$this->executerRequeteSimple($requete_nouvelle_observation);
return $this->renvoyerDernierIdInsere();
}
 
private function modifierObservation($id_participant, $donnees_obs_a_inserer) {
 
$requete_modification_observation = 'UPDATE ods_observations '.
'SET '.
'oo_date = '.$this->proteger($donnees_obs_a_inserer['date_evenement']).', '.
'oo_commentaire = '.$this->proteger($donnees_obs_a_inserer['commentaire']).', '.
'oo_date = '.$this->proteger($donnees_obs_a_inserer['date_evenement']).', '.
'oo_commentaire = '.$this->proteger($donnees_obs_a_inserer['commentaire']).', '.
'oo_date_modification = NOW() '.
'WHERE oo_id_observation = '.$donnees_obs_a_inserer['id_observation'].' '.
'AND oo_ce_participant = '.$this->proteger($id_participant);
 
return $this->executerRequeteSimple($requete_modification_observation);
}
 
private function renvoyerIdObservationSiEvenementDejaObserveCetteAnnee($id_evenement, $tableau_observations_cette_annee) {
 
foreach($tableau_observations_cette_annee as $observation_cette_annee) {
 
if($id_evenement == $observation_cette_annee['oo_ce_evenement']) {
return $observation_cette_annee['oo_id_observation'];
}
}
 
return false;
}
 
private function renvoyerIdEvenementSiChampDeFormulaireObservation($champ) {
 
$tab_champ = explode('observation_',$champ);
 
if(count($tab_champ) > 1 && is_numeric($tab_champ[1])) {
return $tab_champ[1];
}
 
return false;
}
 
private function formaterDateObservationPourBdd($date) {
 
$format = $this->config['appli']['format_date'];
 
if(!isset($format)) {
$format = 'd/m/Y';
}
 
$recherche = array('d','m','Y');
$remplacement = array('([0-9]{1,2})','([0-9]{1,2})','([0-9]{4})');
 
$pattern_date_simple = str_replace($recherche, $remplacement, $format);
 
$date_tab = explode('/', $date);
$time = mktime(0,0,0,$date_tab[1],$date_tab[0],$date_tab[2]);
 
if($this->estUneDateInvalide($date_tab[1],$date_tab[0],$date_tab[2])) {
$date_a_renvoyer = $date_tab[2].'-'.$date_tab[1].'-'.$date_tab[0];
} else {
if(!ereg($pattern_date_simple, $date)) {
$time = strtotime($date);
}
$date_a_renvoyer = date('Y-m-d h:i:s', $time);
}
$date_a_renvoyer = date('Y-m-d', $time);
}
 
return $date_a_renvoyer;
}
}
 
private function estUneDateInvalide($jour, $mois, $annee) {
return ($jour == '00' || $mois == '00' || $annee == '0000');
}
 
/**
* Méthode appelée pour supprimer un élément
*/
public function deleteElement($uid) {
 
// Envoie sur la sortie standard
$this->envoyer();
}
}
?>
?>