1,8 → 1,9 |
<?php |
|
class OdsEspece extends JRestService { |
class OdsEspece extends GestionTriple { |
|
const PREFIXE = 'get'; |
const ABBR_LISTE_TYPE_ESPECE = 'type_espece'; |
|
/** |
* Méthode appelée avec une requête de type GET. |
32,18 → 33,9 |
* 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); |
|
//TODO: méthode de création d'espeèce spéciales aux admins |
|
} |
|
/** |
100,102 → 92,74 |
/** ======================= Methodes privées d'accès au informations ================================ */ |
|
private function getElementParDefaut() { |
return $this->getEspeces(); |
return $this->getEspecesParType(); |
} |
|
private function getEspeces() { |
|
return array( |
'1' => array( |
'id' => '1', |
'nom_vernaculaire' => 'Erable de Montpellier' |
), |
'2' => array( |
'id' => '2', |
'nom_vernaculaire' => 'Herbe à canard' |
), |
'3' => array( |
'id' => '3', |
'nom_vernaculaire' => 'Coquelicot' |
), |
'4' => array( |
'id' => '4', |
'nom_vernaculaire' => 'Herbe à chat' |
), |
'5' => array( |
'id' => '5', |
'nom_vernaculaire' => 'Hibou' |
), |
'6' => array( |
'id' => '6', |
'nom_vernaculaire' => 'Coucou' |
) |
); |
} |
|
private function getEspece($params) { |
|
$id_espece = $params[0]; |
|
$infos_espece = array( |
'id' => $id_espece, |
'nom_scientifique' => 'Acer monspessulanum', |
'nom_vernaculaire' => 'Erable de Montpellier', |
'description' => 'Un arbre bien connu de tous', |
'url_image' => 'http://www.tela-botanica.org/sites/eflore/generique/images/projets/eflore/bdnff/4.02/nt/8523/002543.jpg' |
); |
|
return $infos_espece; |
} |
|
|
private function getEspecesPourStation($params) { |
|
$id_station = $params[0]; |
|
$especes_dans_station = $this->getEspeces(); |
$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); |
|
$modulo = ($id_station+7)%6; |
if($modulo == 0) $modulo = 1; |
|
return array_slice($especes_dans_station, 0, $modulo); |
foreach($especes_pour_station as &$espece_dans_station) { |
|
$espece_dans_station = $this->formaterTableauEspecePourEnvoi($espece_dans_station); |
} |
|
return $especes_pour_station; |
} |
|
private function getEspecesParType($params) { |
private function getEspecesParType() { |
|
$id_type = $params[0]; |
|
return $especes_par_type = array( |
|
'1' => array( |
'nom' => 'herbacées', |
'especes' => array( |
'1' => array('id' => '1', |
'nom_vernaculaire' => 'Herbe de Montpellier' |
) |
) |
), |
|
'2' => array( |
'nom' => 'arbres', |
'especes' => array( |
'id' => array('id' => '1', |
'nom_vernaculaire' => 'Erable de Montpellier' |
) |
) |
|
), |
|
'3' => array( |
'nom' => 'animaux', |
'especes' => array( |
'id' => array('id' => '1', |
'nom_vernaculaire' => 'Hibou de Montpellier' |
) |
) |
) |
); |
|
$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'] |
); |
|
} |
} |
?> |