* @author Delphine CAUQUIL * @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 Mobile extends aControleur { private $theme = 'pyracantha'; 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'; $this->theme = isset($_GET['theme']) ? $_GET['theme'] : $this->theme; $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(){ $niveau = Registre::get('parametres.niveau'); $squelette = "theme_{$this->theme}_niveau{$niveau}"; $donnees = $this->parametres; $donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci_html').' '.$this->nom_retenu->get('auteur'); $donnees['famille'] = $this->nom_retenu->getTaxonSupRang('180'); $donnees = array_merge($this->obtenirDonnees(), $donnees); $donnees['css'] = $this->obtenirLienCss(); $donnees['url_absolue'] = "http://".$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI']; $donnees['contenu_onglet'] = $this->getVue($squelette, $donnees); $donnees['lien'] = $this->url->obtenirUrlMobile($this->parametres['num_nom']); $this->setSortie(self::RENDU_CORPS, $this->getVue('fiche', $donnees), true); //print_r($donnees); } 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', 'repartition', 'texte', 'floraison', 'nomsCommuns'); foreach ($sources as $source) { $nom_classe = ucfirst($source); $classe = new $nom_classe($this->conteneur); $donnees[$source] = $classe->getDonnees(); } return $donnees; } private function obtenirLienCss() { $theme = $this->theme; if (strcmp($this->theme, 'pyracantha') >= 0) { $theme = 'pyracantha_blanc'; } $lien = "modules/mobile/presentations/css/$theme.css"; return $lien; } } ?>