Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 1327 → Rev 1328

/branches/v5.12-baouque/services/modules/0.1/vascan/CommunNomsTaxons.php
New file
0,0 → 1,930
<?php
// declare(encoding='UTF-8');
/**
* Description :
* Classe CommunNomsTaxons.php
* Encodage en entrée : utf8
* Encodage en sortie : utf8
* @package framework-v3
* @author Jennifer Dhé <jennifer.dhe@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @version 1.0
* @copyright 1999-2011 Tela Botanica (accueil@tela-botanica.org)
*/
 
 
abstract class CommunNomsTaxons extends Commun {
 
/** Tableau de correspondance entre les noms des champs et les codes de l'ontologie.*/
private $relationsChampsCodesOntologie = null;
protected $table_retour; //Permet de stocker le tableau de résultat (non encodé en json)
protected $resultat_req; // Permet de stocker le résultat de la requete principale.
protected $compo_nom = null; //Stocke sous forme de tableau les composant du nom à ajouter au nom scientifique
protected $table;// Nom de la table dans laquelle on récupèrera les données dans les requetes SQL
protected $total_resultat = null;
/** Stocke le service appelé correspondant. Est utilisé principalement lors de l'affichage du href d'un synonyme
(ex id=12, basionyme num 25 est un synonyme) dans le service taxon */
protected $service_href = null;
protected $erreursParametres = null;
protected $sans_nom_sci = array('gen','sp','ssp','fam','au_ss','bib_ss');
private $bib_traitees = array();
private $ontologie = array();
 
//+------------------------------- PARAMÈTRES ---------------------------------------------------------------+
 
public function traiterParametres() {
$this->definirParametresParDefaut();
$this->verifierParametres();
 
if (isset($this->parametres) && count($this->parametres) > 0) {
foreach ($this->parametres as $param => $val) {
switch ($param) {
case 'ns.structure' :
$this->remplirTableCompositionNom($val);
if (in_array($val,$this->sans_nom_sci)){
$this->requete_champ = implode(', ',$this->compo_nom);
}else {
$this->requete_champ .= ' ,'.implode(', ',$this->compo_nom);
}
break;
case 'navigation.depart' :
$this->limite_requete['depart'] = $val;
break;
case 'navigation.limite' :
$this->limite_requete['limite'] = $val;
break;
}
}
$this->traiterParametresSpecifiques();
}
}
 
protected function definirParametresParDefaut() {
if (empty($this->parametres['recherche'])) {
$this->parametres['recherche'] = 'stricte';
}
if (empty($this->parametres['ns.format'])) {
$this->parametres['ns.format'] = 'txt';
}
if (empty($this->parametres['retour.format'])) {
$this->parametres['retour.format'] = 'max';
}
if (empty($this->parametres['ns.structure']) &&
$this->parametres['retour.format'] != 'oss') {
$this->parametres['ns.structure'] = 'au,an,bib';
}
}
 
 
public function verifierParametres() {
//$this->verifierParametresAPI();
 
$this->verifierParametre('recherche', 'stricte|floue|etendue|complete');
$this->verifierParametre('ns.format', 'htm|txt');
$this->verifierParametre('retour.format', 'min|max