Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 32 → Rev 33

/trunk/applications/jrest/services/OdsEspece.php
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']
);
}
}
?>