Rev 41 | Rev 92 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass OdsEspece extends GestionTriple {const PREFIXE = 'get';const ABBR_LISTE_TYPE_ESPECE = 'type_espece';/*** 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 {$methode = self::PREFIXE.$type;if (method_exists($this, $methode)) {array_shift($param);$info = $this->$methode($param);} else {$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";}}// Envoi sur la sortie standard$this->envoyer($info);}/*** Méthode appelée pour ajouter un élément.*/public function createElement($params) {//TODO: méthode de création d'espèce spéciale aux admins}/*** Méthode appelée pour mettre à jour un élément*/public function updateElement($uid, $params) {//Mise à jour de la personne// Identification de l'utilisateurlist($id_utilisateur, $id_session) = $this->getIdentification($params);// Contrôle du non détournement de l'utilisateurif ($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'urlif (!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'utilisateurif ($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();}/** ======================= Methodes privées d'accès au informations ================================ */private function getElementParDefaut() {return $this->getEspecesParType();}private function getEspece($params) {$id_espece = $params[0];$requete_informations_espece = 'SELECT * FROM ods_especes '.'WHERE oe_id_espece = '.$this->proteger($id_espece);$informations_espece = $this->executerRequete($requete_informations_espece);$informations_espece_formatees = array();if(!empty($informations_espece)) {$informations_espece_formatees = $this->formaterTableauEspecePourEnvoi($informations_espece[0]);}return $informations_espece_formatees;}private function getEspecesPourStation($params) {$id_station = $params[0];$requete_especes_pour_station = 'SELECT * FROM ods_especes '.'WHERE oe_id_espece IN '.'( '.'SELECT oi_ce_espece FROM ods_individus '.'WHERE oi_ce_station = '.$this->proteger($id_station).') '.'ORDER BY oe_ce_type';$especes_pour_station = $this->executerRequete($requete_especes_pour_station);foreach($especes_pour_station as &$espece_dans_station) {$espece_dans_station = $this->formaterTableauEspecePourEnvoi($espece_dans_station);}return $especes_pour_station;}private function getEspecesParType() {$requete_toute_espece = 'SELECT * FROM ods_especes ORDER BY oe_ce_type';$liste_espece = $this->executerRequete($requete_toute_espece);$liste_type_espece = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_TYPE_ESPECE);$especes_par_type = array();foreach($liste_espece as $espece) {$espece = $this->formaterTableauEspecePourEnvoi($espece);$type = $espece['type'];$nom_type = $liste_type_espece[$type]['ot_valeur'];if(!isset($especes_par_type[$type])) {$especes_par_type[$type] = array('nom' => $nom_type,'especes' => array());}$especes_par_type[$type]['especes'][] = $espece;}return $especes_par_type;}private function formaterTableauEspecePourEnvoi($espece) {return array('id_espece' => $espece['oe_id_espece'],'nom_vernaculaire' => $espece['oe_nom_vernaculaire'],'nom_scientifique' => $espece['oe_nom_scientifique'],'espece_ecole' => $espece['oe_espece_ecole'],'description' => $espece['oe_description'],'climat' => $espece['oe_ce_climat'],'evenements' => $espece['oe_ce_evenements'],'type' => $espece['oe_ce_type']);}}?>