New file |
0,0 → 1,201 |
<?php |
|
class OdsEspece extends JRestService { |
|
const PREFIXE = 'get'; |
|
/** |
* 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) { |
// 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(); |
} |
|
/** ======================= Methodes privées d'accès au informations ================================ */ |
|
private function getElementParDefaut() { |
return $this->getEspeces(); |
} |
|
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(); |
|
$modulo = ($id_station+7)%6; |
if($modulo == 0) $modulo = 1; |
|
return array_slice($especes_dans_station, 0, $modulo); |
} |
|
private function getEspecesParType($params) { |
|
$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' |
) |
) |
) |
); |
|
return $especes_par_type; |
} |
} |
?> |