Rev 460 | Rev 955 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Classe mère du module Liste.** @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 Bibliographie extends aControleur {private $apiBiblioBota;private $conteneur;private $nomCourant;private $meta;private $appUrls;private $wikini;public function __construct(Conteneur $conteneur) {$this->conteneur = $conteneur;$this->nomCourant = $this->conteneur->getNomCourant();$this->wikini = $this->conteneur->getApiWikini();$this->meta = $this->conteneur->getApiMetaDonnees();$this->appUrls = $this->conteneur->getAppUrls();}public function obtenirDonnees() {$donnees['flores']['liste_flores'] = $this->getFlores();$this->meta->setProjet('bdtfx');$meta = $this->meta->getMetaDonnees();$titreMeta = $meta[0]['titre'];$donnees['flores']['meta']['titre'] = $titreMeta;$donnees['flores']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bdtfx');$donnees['bibliobota']['references'] = $this->getBiblioBota();$this->meta->setProjet('bibliobota');$meta = $this->meta->getMetaDonnees();$titreMeta = $meta[0]['titre'];$donnees['bibliobota']['meta']['titre'] = $titreMeta;$donnees['bibliobota']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bibliobota');$donnees['wikini'] = $this->getWikini();return $donnees;}public function getBloc() {$flores = $this->getFlores();$donnees['flores'] = array_slice($flores, 0, 3);$donnees['autresFlores'] = count($flores) - 3;$references = $this->getBiblioBota();$donnees['references'] = array_slice($references, 0, 3);foreach ($donnees['references'] as $id=>$reference) {preg_match('/.*<strong>(.*)<\/strong>.*/', $reference['reference_html'], $titre);$donnees['references'][$id]['reference_html'] = $titre[1];}$donnees['autresReferences'] = count($references) - 3;if ($donnees['flores'] == array() && $donnees['references'] == array()) {$donnees['wikini'] = $this->getWikini();}return $donnees;}// Récupération des données flores présentes dans le référentielprivate function getFlores() {$flores = $this->nomCourant->getNomRetenu()->get('flores');$flores = explode(',', $flores);return $this->remplacerCorrespondancesFlores($flores);}//Obtention des données issues de biblio_botaprivate function getBiblioBota() {$this->apiBiblioBota = $this->conteneur->getApiBiblioBota();$this->apiBiblioBota->setProjet('bibliobota');$references = $this->apiBiblioBota->getReferences($this->conteneur->getParametre('nom'));return $references['resultats'];}private function getWikini() {$wikini = array();$wikini['titre'] = 'Wikini';$referentiel = $this->conteneur->getParametre('referentiel');$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);$wikini['biblio'] = $this->wikini->getTexteFormate($page_wiki, 'biblio');return $wikini;}//TODO: faire une ontologie mais pas de tache prévue dans ce sprintprivate function getCorrespondancesBiblio() {$correspondance = array('1' => 'BONNIER & LAYENS, 1894. Tables synoptiques des plantes vasculaires de la flore de France.','2' => 'COSTE, 1899-1906. Flore illustrée France, (3 vol.).','3' => 'FOURNIER, 1934-1940. Quatre Flores de France.','3*' => 'FOURNIER, additions dans l\'édition de 1961.','4' => 'TUTIN & al., 1964-1980. Flora Europaea, (5 vol.).','4*' => 'Flora Europaea, édition 2 (Vol. 1), voir TUTIN & al. (1993), abrégée en FE2. L\'indication est surtout donnée quand la citation n\'a pas été faite dans 4 (supplémentaire ou modifiée).','5' => 'GUINOCHET & VILMORIN, 1973-1984. Flore de France, éd. C.N.R.S., (5 vol.).','6' => 'KERGUÉLEN, 1993. Liste synonymique de la flore de France.');return $correspondance;}private function remplacerCorrespondancesFlores($flores) {$correspondance_code_flores = $this->getCorrespondancesBiblio();$flores_texte = array();foreach($flores as $code_flore) {$code_flore = trim($code_flore);if(isset($correspondance_code_flores[$code_flore])) {$flores_texte[] = $correspondance_code_flores[$code_flore];}}return $flores_texte;}}?>