* @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 Noms extends Eflore { public function getSynonymes($nn) { $tpl = Config::get('nomsSynonymesTpl'); $params = array('id' => $nn); $url = $this->formaterUrl($tpl, $params); return $this->chargerDonnees($url); } public function getFlores($nn) { $tpl = Config::get('nomsFloresTpl'); $params = array('id' => $nn); $url = $this->formaterUrl($tpl, $params); return $this->chargerDonnees($url); } public function getNom($nn) { return $this->chargerDonnees($this->getUrlNom($nn)); } public function getRechercheEtendue($nom, $type_resultat = '') { $methode = 'getUrlRecherche'.$type_resultat; if (method_exists($this, $methode)) { $url = $this->$methode($nom, 'etendue'); } else { $url = $this->getUrlRecherche($nom, 'etendue'); Debug::printr("Le type de recherche demandé '$type_resultat' n'est pas disponible."); } return $this->chargerDonneesRecursivement($url); } public function getRechercheFloue($nom) { $url = $this->getUrlRecherche($nom, 'floue'); return $this->chargerDonnees($url); } public function getRechercheAvancee($parametres) { $url = $this->getUrlRechercheAvancee($parametres); return $this->chargerDonnees($url); } private function getUrlRechercheAvancee($parametres){ $tpl = Config::get('nomsRechercheAvanceeTpl'); $masques = $this->formaterMasquesRechercheAvancee($parametres); $url = ''; if($masques != ''){ $url = $this->formaterUrl($tpl,array('projet'=> $this->getProjet(), 'type' => 'etendue')); $url .= '&'.implode('&',$masques); } return $url; } private function formaterMasquesRechercheAvancee($parametres) { $masques = ''; foreach ($parametres as $masque => $valeur){ if ($valeur != '' && in_array($valeur, I18n::get('Recherche-form-avancee')) == false){ if ($masque == 'type') { $masques[] = 'masque='.urlencode('%'.$valeur); } elseif ($masque == 'au') { $masques[] = 'masque.au='.urlencode($valeur.',('.$valeur.'%),% '.$valeur); } elseif ($masque == 'bib'){ $masques[] = 'masque.bib='.urlencode($valeur.',%; '.$valeur); } else { $valeur = ($valeur == '0') ? '' : $valeur; $masques[] = 'masque.'.$masque.'='.urlencode($valeur); } } } return $masques; } private function getUrlNom($nn) { $tpl = Config::get('nomTpl'); $params = array('id' => $nn); $url = $this->formaterUrl($tpl, $params); return $url; } // retourne les champs par defaut private function getUrlRecherche($nom, $typeRech) { $tpl = Config::get('nomsRechercheTpl'); $params = array('valeur' => $nom, 'type' => $typeRech); $url = $this->formaterUrl($tpl, $params); return $url; } // retourne les champs par defaut private function getUrlRechercheAlphab($nom, $typeRech) { $tpl = Config::get('nomsRechercheAlphabTpl'); $params = array('valeur' => $nom, 'type' => $typeRech); $url = $this->formaterUrl($tpl, $params); return $url; } // retourne les champs par defaut private function getUrlRechercheRetenu($nom, $typeRech) { $tpl = Config::get('nomsRechercheRetenuTpl'); $params = array('valeur' => $nom, 'type' => $typeRech); $url = $this->formaterUrl($tpl, $params); return $url; } private function getUrlRechercheSynonyme($nom, $typeRech) { $tpl = Config::get('nomsRechercheSynonymeTpl'); $params = array('valeur' => $nom, 'type' => $typeRech); $url = $this->formaterUrl($tpl, $params); return $url; } // retourne les champs par defaut + nom retenu private function getUrlRechercheDetermination($nom, $typeRech) { $tpl = Config::get('nomsRechercheDeterminationTpl'); $params = array('valeur' => $nom, 'type' => $typeRech); $url = $this->formaterUrl($tpl, $params); return $url; } // retourne les champs par defaut + nom decompose (au, an et bib) private function getUrlRechercheDecompo($nom, $typeRech) { $tpl = Config::get('nomsRechercheDecompoTpl'); $params = array('valeur' => $nom, 'type' => $typeRech); $url = $this->formaterUrl($tpl, $params); return $url; } } ?>