Rev 758 | Rev 998 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
// declare(encoding='UTF-8');
/**
* Classe gérant les noms scientifiques.
*
* @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 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) {
$url = $this->getUrlNom($nn);
return $this->chargerDonnees($url);
}
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;
}
}
?>