5,11 → 5,6 |
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. |
* |
33,8 → 28,77 |
// Envoi sur la sortie standard |
$this->envoyer($info); |
} |
|
/** |
* Méthode appelée pour ajouter un élément. |
*/ |
public function createElement($params) { |
// Identification de l'utilisateur |
list($id_utilisateur, $id_session) = $this->getIdentification($params); |
|
// Contrôle du non détournement de l'utilisateur |
if ($this->etreAutorise($id_utilisateur)) { |
try { |
|
} catch (PDOException $e) { |
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete); |
} |
} |
$this->envoyer((string) $id_personne); |
} |
|
/** |
* 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); |
|
// 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(); |
} |
|
/** |
* 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); |
} |
} |
} |
} |
} |
|
// Envoie sur la sortie standard |
$this->envoyer(); |
} |
|
private function getElementParDefaut($params) { |
private function getElementParDefaut($params) { |
|
} |
|
58,25 → 122,46 |
|
$liste_observation_individu = $this->executerRequete($requete_liste_observation_individu); |
|
$liste_observation_individu_formatees = array(); |
$liste_observation_individu_formatees =array(); |
|
$requete_evenements_pour_espece_individu_1 = 'SELECT oe_ce_evenements FROM ods_especes '. |
'WHERE oe_id_espece = '. |
'('. |
'SELECT oi_ce_espece FROM ods_individus '. |
'WHERE oi_id_individu = '.$this->proteger($id_individu).' '. |
')'; |
|
|
$evenements_pour_espece_chaine = $this->executerRequete($requete_evenements_pour_espece_individu_1); |
$evenements_pour_espece_chaine = $evenements_pour_espece[0]['oe_ce_evenements']; |
|
$tableau_evenements_espece = split(',',$evenements_pour_espece_chaine); |
foreach($tableau_evenements_espece as &$evenement_espece) { |
$evenement_espece = $this->proteger($evenement_espece); |
} |
|
$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece); |
|
$requete_liste_evenement_espece_individu = 'SELECT * FROM ods_triples '. |
'WHERE ot_id_triple IN '. |
'('.$evenements_espece_chaine_bdd.')'; |
|
$liste_evenement_espece_individu = $this->executerRequete($requete_liste_evenement_espece_individu); |
$liste_evenement_espece_individu = $liste_evenement_espece_individu[0]; |
|
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']); |
$annee_obs = date($observation_individu['oo_date'], "Y"); |
$stade_observation_complet = $observation_individu['oo_ce_evenement']; |
|
$abbr_stade_observation = $stade_observation_complet['ot_cle']; |
$infos_stades = split('_',$stade_observation_complet); |
|
$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($abbr_stade_observation); |
$titre_stade = $infos_stades[1]; |
$numero_stade = $infos_stades[3]; |
|
$titre_stade = $infos_stades['nom']; |
$numero_stade = $infos_stades['numero']; |
$abreviation_stade = $infos_stades['abreviation']; |
$date_observation_formatee = date($observation_individu['oo_date'],$this->config['appli']['format_date']); |
|
$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; |
|
} |
|
83,186 → 168,35 |
return $liste_observation_individu_formatees; |
} |
|
private function getInformationEvenementParId($id_evenement) { |
/*private function getMajEspece() { |
$id_maj = '97,98,99,100,101,102,108,109,110,111'; |
$stade_ajoute = '20'; |
|
$requete_informations_evenement = 'SELECT * FROM ods_triples '. |
'WHERE ot_id_triple IN '. |
'('.$this->proteger($id_evenement).')'; |
$tab = explode(',',$id_maj); |
|
$resultat_requete_informations_evenement = $this->executerRequete($requete_informations_evenement); |
$informations_evenement = $resultat_requete_informations_evenement[0]; |
|
return $informations_evenement; |
} |
|
/** |
* Méthodes de création et modification d'informations |
*/ |
|
/** |
* Méthode appelée pour ajouter un élément. |
*/ |
public function createElement($params) { |
|
print_r($params); |
|
$this->envoyer(); |
} |
|
/** |
* Méthode appelée pour mettre à jour un élément |
*/ |
public function updateElement($uid, $params) { |
|
$elements_requis = array('id_participant','id_individu'); |
$erreurs = array(); |
|
foreach($elements_requis as $requis) { |
if(!isset($params[$requis])) { |
$erreurs[$requis] = 'erreur '; |
foreach($tab as $id) { |
|
$requete = 'SELECT oe_ce_evenements FROM ods_especes WHERE oe_id_espece = '.$id; |
echo $requete.'<br />'; |
$res = $this->executerRequete($requete); |
|
print_r($res); |
|
if($res[0]['oe_ce_evenements'] == 0) { |
$evts = ''.$stade_ajoute; |
} else { |
$evts = $res[0]['oe_ce_evenements'].','.$stade_ajoute; |
} |
} |
|
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); |
} |
|
$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); |
} |
} |
} |
|
$this->envoyer(); |
} |
|
private function insererObservation($id_participant, $donnees_obs_a_inserer) { |
|
$nouvel_ordre = 1; |
|
$requete_max_ordre = 'SELECT MAX(oo_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]['oo_ordre'] + 1; |
} |
|
$requete_nouvelle_observation = 'INSERT INTO ods_observations '. |
'(oo_ordre, oo_ce_individu, oo_ce_evenement, oo_date, oo_commentaire, oo_date_saisie, oo_date_modification) '. |
'VALUES '. |
'( '. |
$this->proteger($nouvel_ordre).','. |
$this->proteger($donnees_obs_a_inserer['id_individu']).','. |
$this->proteger($donnees_obs_a_inserer['id_evenement']).','. |
$this->proteger($donnees_obs_a_inserer['date_evenement']).','. |
'"",'. |
'NOW(),'. |
'NOW()'. |
')'; |
|
return $this->executerRequeteSimple($requete_nouvelle_observation); |
} |
|
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_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']) { |
|
$observation_cette_annee['oo_ce_evenement']; |
return $observation_cette_annee['oo_id_observation']; |
} |
$evts = $this->proteger($evts); |
|
$requete = 'UPDATE ods_especes SET oe_ce_evenements = '.$evts.' WHERE `oe_id_espece` = '.$id; |
|
|
echo $requete.'<br />';; |
$this->executerRequeteSimple($requete); |
} |
|
return false; |
} |
|
private function renvoyerIdEvenementSiChampDeFormulaireObservation($champ) { |
|
$tab_champ = split('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);; |
|
if(ereg($pattern_date_simple, $date)) { |
$date_tab = split('/', $date); |
$time = mktime(0,0,0,$date_tab[1],$date_tab[0],$date_tab[2]); |
} else { |
$time = strtotime($date); |
} |
|
return date('Y-m-d h:i:s', $time); |
} |
|
/** |
* Méthode appelée pour supprimer un élément |
*/ |
public function deleteElement($uid) { |
|
// Envoie sur la sortie standard |
$this->envoyer(); |
} |
}*/ |
} |
?> |