* @copyright 2015 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 Mobile extends aControleur { private $parametres = array(); private $conteneur = null; private $num_nom = 0; private $nom_courant = null; private $nom_retenu = ''; private $url; public function initialiser() { $this->capturerParametres(); $this->conteneur = new Conteneur($this->parametres); $this->url = $this->conteneur->getAppUrls(); $this->nomCourant = $this->conteneur->getNomCourant(); $this->nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu(); spl_autoload_register(array($this, 'chargerClassesSources')); } private function chargerClassesSources($classe) { $base = dirname(__FILE__).DS; $cheminSources = $base.'sources'.DS; $dossiers = array($base, $cheminSources); foreach ($dossiers as $chemin) { $fichierATester = $chemin.$classe.'.php'; if (file_exists($fichierATester)) { include_once $fichierATester; return null; } } } private function capturerParametres() { $this->parametres['num_nom'] = isset($_GET['num_nom']) ? $_GET['num_nom'] : ''; $this->parametres['nom'] = isset($_GET['nom']) ? $_GET['nom'] : ''; $this->parametres['type_nom'] = isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique'; $referentiel = isset($_GET['referentiel']) ? $_GET['referentiel'] : ''; Registre::set('parametres.referentiel', $referentiel); $this->parametres['referentiel'] = $referentiel; $niveau = isset($_GET['niveau']) ? $_GET['niveau'] : '1'; Registre::set('parametres.niveau', $niveau); } public function executerActionParDefaut() { $this->executerFiche(); } public function executerFiche(){ $donnees = $this->parametres; $donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci').' '.$this->nom_retenu->get('auteur'); $donnees['famille'] = $this->nom_retenu->get('famille'); $donnees = array_merge($this->obtenirDonnees(), $donnees); $donnees['url_absolue'] = "http://".$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI']; $donnees['url_logos'] = "modules/mobile/presentations/logos/"; $donnees['lien'] = $this->url->obtenirUrlMobile($this->parametres['num_nom']); $donnees['lien_fiche'] = $this->url->obtenirUrlFiche($this->parametres['num_nom']); $donnees['infos_nom'] = array( 'nom_sci' => $donnees['nom_retenu'], 'referentiel' => $this->parametres['referentiel'], 'famille' => $donnees['famille'], 'nom_verna' => '' ); // juste pour avoir le tag de la fiche pour Google Analytics : $sourceTexte = new Texte($this->conteneur); $tag = $sourceTexte->obtenirTagFiche(); $donnees['tag_fiche'] = $tag; // on active GA uniquement si on est en prod $donnees['prod'] = Config::get("info.prod"); if(!empty($donnees['nomsCommuns'])) { $donnees['infos_nom']['nom_verna'] = $donnees['nomsCommuns'][0]['nom_vernaculaire']; } $tpl_edition = Config::get('smartFloreEditionFormulaireUrlTpl'); $url_edition = sprintf($tpl_edition, strtoupper($this->parametres['referentiel']), $this->nom_retenu->get('num_taxonomique')); $donnees['lien_edition'] = $url_edition; $this->setSortie(self::RENDU_CORPS, $this->getVue('smartflore', $donnees), true); } public function obtenirDonnees() { $donnees = array(); $num_nom = $this->nomCourant->getNns(); $referentiel = $this->conteneur->getParametre('referentiel'); $taxons = new Taxons($this->conteneur); $donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $num_nom); $sources = array('illustrations', 'texte', 'nomsCommuns'); foreach ($sources as $source) { $nom_classe = ucfirst($source); $classe = new $nom_classe($this->conteneur); $donnees[$source] = $classe->getDonnees(); } return $donnees; } } ?>