Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

<?php
// declare(encoding='UTF-8');
/**
 * Classe gérant les noms scientifiques.
 *
 * @category    PHP 5.2
 * @package             eflore-consultation
 * @author              Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author              Delphine CAUQUIL <delphine@tela-botanica.org>
 * @copyright   2011 Tela-Botanica
 * @license             http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
 * @license             http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
 * @version             $Id$
 */
class Taxons extends Eflore {

        public function getTaxon($nn) {
                $url = $this->getUrlTaxon($nn);
                return $this->chargerDonnees($url);
        }

        public function getStatsInitialesFamille() {
                $url = $this->getUrlStatsInitiales(self::RANG_FAMILLE);
                $donnees = $this->chargerDonnees($url);
                if (isset($donnees['Famille'])) {
                        $initiales = $donnees['Famille'];
                } elseif (isset($donnees[self::RANG_FAMILLE])) {
                        $initiales = $donnees[self::RANG_FAMILLE];
                }

                return $initiales;
        }

        private function getUrlTaxon($nn) {
                $tpl = Config::get('taxonTpl');
                $params = array('id' => $nn);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }

        public function getStatsInitialesGenre() {
                $url = $this->getUrlStatsInitiales(self::RANG_GENRE);
                $donnees = $this->chargerDonnees($url);
                $initiales = $donnees['Genre'];
                if (isset($donnees['Genre'])) {
                        $initiales = $donnees['Genre'];
                } elseif (isset($donnees[self::RANG_GENRE])) {
                        $initiales = $donnees[self::RANG_GENRE];
                }
                return $initiales;
        }

        private function getUrlStatsInitiales($rang) {
                $tpl = Config::get('taxonsStatsInitialesRangTpl');
                $params = array('rang' => $rang);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }

        public function getListeFamilleParInitiale($lettre) {
                $url = $this->getUrlInitiales(self::RANG_FAMILLE, $lettre);
                $donnees = $this->chargerDonneesRecursivement($url);
                $taxons = ($donnees === false) ?  $donnees : $donnees['resultat'];
                return $taxons;
        }

        public function getListeGenreParInitiale($lettre) {
                $url = $this->getUrlInitiales(self::RANG_GENRE, $lettre);
                $donnees = $this->chargerDonneesRecursivement($url);
                $taxons = ($donnees === false) ?  $donnees : $donnees['resultat'];
                return $taxons;
        }

        private function getUrlInitiales($rang, $lettre) {
                $tpl = Config::get('taxonsListeInitialesRangTpl');
                $params = array('rang' => $rang, 'initiale' => $lettre);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }

        public function getRechercheEtendue($nom) {
                $url = $this->getUrlRecherche($nom, 'etendue');
                return $this->chargerDonnees($url);
        }

        public function getRechercheFloue($nom) {
                $url = $this->getUrlRecherche($nom, 'floue');
                return $this->chargerDonnees($url);
        }

        private function getUrlRecherche($nom, $typeRech) {
                $tpl = Config::get('taxonsRechercheTpl');
                $params = array('valeur' => $nom, 'type' => $typeRech);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }
        
        public function getTaxonsInf($num_nom) {
                $url = $this->getUrlTaxonsInf($num_nom);
                return $this->chargerDonnees($url);
        }
        
        private function getUrlTaxonsInf($num_nom) {
                $tpl = Config::get('taxonInfTpl');
                $params = array('id' => $num_nom);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }
        
        public function getTaxonsSup($num_nom) {
                $url = $this->getUrlTaxonsSup($num_nom);
                return $this->chargerDonnees($url);
        }
        
        private function getUrlTaxonsSup($num_nom) {
                $tpl = Config::get('taxonSupTpl');
                $params = array('id' => $num_nom);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }
        
        public function getUrlPermalienNumNom($referentiel, $version, $num_nom) {
                $tpl = Config::get('permalienNumNomTpl');
                $params = array('ref_tax' =>$referentiel, 'ref_version' =>$version, 'id' => $num_nom);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }
        
        public function getUrlPermalienTaxon($referentiel, $version, $num_tax) {
                $tpl = Config::get('permalienTaxonTpl');
                $params = array('ref_tax' =>$referentiel, 'ref_version' =>$version, 'id' => $num_tax);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }
}
?>