* @copyright 2010 Tela-Botanica * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL * @version SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $ */ class Espece extends aControleur { private $id_espece_en_cours = null; public function __construct() { parent::__construct(); $this->initialiser(); } public function initialiser() { if(isset($_GET['$id_espece'])) { $this->id_espece_en_cours = $_GET['$id_espece']; } $this->setNavigation(); } private function setNavigation() { $station = new Station(); $this->setSortie(self::RENDU_NAVIGATION, $station->construireMenuNavigation()); } public function executerActionParDefaut() { return $this->afficherFormulaireSaisieIndividu(); } // +---------------------------------------------------------------------------------------------------------------+ // METHODES D'AFFICHAGE DE FORMULAIRE public function afficherFormulaireSaisieEspece() { $donnees = array(); if(!isset($_GET['id_station'])) { return; } $donnees['id_station'] = $_GET['id_station']; $donnees['types'] = $this->renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($donnees['id_station']); $formulaire = $this->getVue('formulaires/espece_saisie',$donnees); $this->setSortie(self::RENDU_CORPS, $formulaire); } public function validerFormulaireSaisieEspece() { $valeurs_verifiees = $this->collecterValeursFormulaireSaisieEspece(); $individu = new Individu(); $this->setNavigation(); $this->setSortie(self::RENDU_CORPS,$individu->getFormulaireSaisieIndividu($valeurs_verifiees)); } private function renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($id_station) { $espece_dao = new EspeceDao(); return $liste_espece_par_type_complete = $espece_dao->getListeEspecesParType(); $liste_plate_especes_dans_station = $espece_dao->getListeEspecesPourStation($id_station); $liste_especes_pouvant_etre_ajoutees = array(); foreach($liste_espece_par_type_complete as $type => $especes_pour_type) { foreach($liste_plate_especes_dans_station as $indice => $espece_dans_station) { $id_espece = $espece_dans_station['id_espece']; if($this->especeEstPresenteDansTableauIndexeParId($id_espece, $especes_pour_type)) { unset($liste_plate_especes_dans_station[$indice]); unset($especes_pour_type['especes'][$id_espece]); } } $liste_especes_pouvant_etre_ajoutees[$type] = $especes_pour_type; } return $liste_especes_pouvant_etre_ajoutee; } private function especeEstPresenteDansTableauIndexeParId($id_espece, $tableau_espece) { return isset($tableau_espece['especes'][$id_espece]); } // +---------------------------------------------------------------------------------------------------------------+ // METHODES DE VALIDATION DE FORMULAIRE private function collecterValeursFormulaireSaisieEspece() { $valeurs_verifiees['id_espece'] = $_POST['id_espece']; if(!isset($_POST['id_station'])) { $valeurs_verifiees['id_station'] = $_GET['id_station']; } else { $valeurs_verifiees['id_station'] = $_POST['id_station']; } //TODO: verifier valeurs plus complètement return $valeurs_verifiees; } public function getListeEvenementPourEspece($id_espece) { $evenementDao = new EvenementDao(); $liste_evenements = $evenementDao->getListeEvenementPourEspece($id_espece); return $liste_evenements; } } ?>