Subversion Repositories Applications.referentiel

Rev

Rev 82 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Classe Controleur du module Fiche Taxon.
 *
 * @category    Php 5.2
 * @package             Taxon
 * @author              Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @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: Fiche.php 96 2010-06-21 16:46:31Z jpm $
 */
class FicheTaxon extends AppliControleur {
        
        private $donnees = array();
        protected $taxonDao = null;
        
        //+----------------------------------------------------------------------------------------------------------------+
        // Méthodes
        /**
         * Fonction d'affichage par défaut
         */
        public function executerActionParDefaut() {
                return $this->afficherTaxon();
        }
        
        // +---------------------------------------------------------------------------------------------------------------+
        // FICHE COLLECTION
        public function afficherTaxon() {
                // Récupération du référentiel
                if (isset($_GET['ref'])) { 
                        $this->referentiel = strtolower($_GET['ref']);
                }
                // Gestion des actions par défaut
                $this->taxonDao = new TaxonDao();
                $this->definirCommeModulePrincipal(get_class($this));
                $this->construireMenu($this->referentiel);
                $this->construireFilAriane($this->referentiel);
                $this->executerActionReferentiel('Recherche', 'chargerMoteurRecherche', $this->referentiel);
                
                // Gestion des données de la requête
                if (!isset($_GET['num_nom'])) {
                        
                } else {
                        // Récupération des données
                        $this->donnees['referentiel'] = $this->referentiel;
                        $this->donnees['num_nom'] = $_GET['num_nom'];
                        $this->donnees['num_nom_retenu'] = $_GET['num_nom_retenu'];
                        $this->donnees['nom'] = $_GET['nom'];
                        //$this->donnees['info'] = $this->taxonDao->getTaxon($this->referentiel, $this->donnees['num_nom']);
                        
                        // Chargement des données des onglets
                        $this->chargerNomenclature();
                        //print_r($this->donnees);
                        /*$this->chargerSynonymie();
                        $this->chargerClassification();
                        $this->chargerNotes();
                        $this->chargerChorologie();
                        $this->chargerComplements();*/
                        
                        $this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_taxon', $this->donnees));
                        //$this->chargerPiedDePage();
                }
        }
        
        public static function getUrlFicheTaxon($params, $type) {
                $taxon = null;
                switch ($type) {
                        case 'bas' : 
                                $taxon['num_nom'] = $params['bas_num'];
                                $taxon['num_nom_retenu'] = $params['bas_num_retenu'];
                                $taxon['nom_complet'] = $params['bas_nom'];
                                break;
                        case 'p1' :
                                $taxon['num_nom'] = $params['p1_num'];
                                $taxon['num_nom_retenu'] = $params['p1_num'];
                                $taxon['nom_complet'] = $params['p1_nom'];
                                break;
                        case 'p2' : 
                                $taxon['num_nom'] = $params['p2_num'];
                                $taxon['num_nom_retenu'] = $params['p2_num'];
                                $taxon['nom_complet'] = $params['p2_nom'];      
                                break;
                        default : break;
                }
                return Recherche::getUrlFicheTaxon($taxon);
        }
        
        
        private function chargerNomenclature() {
                $this->donnees['selectionne'] = $this->taxonDao->getNomenclature($this->referentiel, $this->donnees['num_nom']);
                if (strpos($this->donnees['nom'], ' x ') ) {
                        if ($this->donnees['num_nom'] != $this->donnees['num_nom_retenu']) {
                                $this->donnees['retenu'] = $this->taxonDao->getNomenclature($this->referentiel, $this->donnees['num_nom_retenu']);
                                $this->donnees['parents'] = $this->taxonDao->getParentsHybride($this->referentiel, $this->donnees['num_nom_retenu']);
                        } else {
                                $this->donnees['parents'] = $this->taxonDao->getParentsHybride($this->referentiel, $this->donnees['num_nom']);
                        }       
                } else {
                        if ($this->donnees['num_nom'] != $this->donnees['num_nom_retenu']) {
                                $this->donnees['retenu'] = $this->taxonDao->getNomenclature($this->referentiel, $this->donnees['num_nom_retenu']);
                        }
                }
        }

}