Rev 84 | Rev 106 | 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 Resultat extends aControleur {private $resultatType = 'determination';public function initialiser() {$this->capturerParametres();}private function capturerParametres() {Debug::printr($_GET);if (isset($_GET['resultat'])) {$this->resultatType = $_GET['resultat'];}}public function executerActionParDefaut() {$this->executerResultat();}public function executerResultat() {$resultats = Registre::get('resultats');$donnees = array();$donnees['typeResultat'] = $this->resultatType;$donnees['urlResClassique'] = $this->obtenirUrlResultatClassique();$donnees['urlResRetenu'] = $this->obtenirUrlResultatRetenu();$donnees['urlResDetermination'] = $this->obtenirUrlResultatDetermination();$donnees['nbreTaxons'] = $resultats['entete']['total'];$donnees['nomsHtml'] = $this->getNoms($resultats['resultat']);$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $donnees));}private function getNoms($resultats) {$noms = null;$methode = 'genererListe'.ucwords($this->resultatType);Debug::printr($methode);$noms = $this->$methode($resultats);return $noms;}private function genererListeClassique($resultats) {$donnees = array();$donnees['noms'] = $this->trierParNoms($resultats);return $this->getVue('resultat_liste_noms', $donnees);}private function trierParNoms($noms) {$noms = Tableau::trierTableauMd($noms, array('nom_sci' => SORT_ASC));return $noms;}private function genererListeRetenu($resultats) {$donnees = array();$donnees['noms'] = $this->trierParNomsRetenus($resultats);return $this->getVue('resultat_liste_noms', $donnees);}private function trierParNomsRetenus($noms) {$nomsRetenus = array();$nomsSynonymes = array();foreach ($noms as $id => $nom) {if ($nom['retenu'] == 'true') {$nomsRetenus[$id] = $nom;} else {$nomsSynonymes[$id] = $nom;}}$nomsRetenus = Tableau::trierTableauMd($nomsRetenus, array('nom_sci' => SORT_ASC));$nomsSynonymes = Tableau::trierTableauMd($nomsSynonymes, array('nom_sci' => SORT_ASC));$noms = array_merge($nomsRetenus, $nomsSynonymes);return $noms;}private function genererListeDetermination($resultats) {$donnees = array();$donnees['noms'] = $this->trierSynonymes($resultats);return $this->getVue('resultat_determination_noms', $donnees);}private function trierSynonymes($noms) {$nomsRetenus = array();foreach ($noms as $id => $nom) {if ($nom['retenu'] == 'true') {$nomsRetenus[$id] = $nom;$nomsRetenus[$id]['url'] = $this->obtenirUrlFiche($id);} elseif ((!isset($nomsRetenus['nom_retenu.id']) ||(isset($nomsRetenus['nom_retenu.id']) && $nomsRetenus['nom_retenu.id']['retenu'] == false))) {$nomsRetenus['nom_retenu.id']['synonymes'][$id] = $nom['nom_sci'];$nomsRetenus['nom_retenu.id']['retenu'] = false;$nomsRetenus['nom_retenu.id']['nom_sci'] = $nom['nom_retenu'];$nomsRetenus['nom_retenu.id']['url'] = $this->obtenirUrlFiche($nom['nom_retenu.id']);}}$nomsRetenus = Tableau::trierTableauMd($nomsRetenus, array('nom_sci' => SORT_ASC));return $nomsRetenus;}}?>