334,6 → 334,11 |
return $url; |
} |
|
static function s_ajouterHref($service, $val, $version_projet = '') { |
// http://tela-botanica.org/service:eflore:0.1/[projet]/[version_projet]/[service]/[ressource]:[valeur] |
return Config::get('url_service_base').Config::get('nom_projet').'/'.$service.'/'.$val . ($version_projet != '+') ? ('?version.projet='.ltrim($version_projet, 'v')) : ''; |
} |
|
public function ajouterHrefAutreProjet($service, $ressource, $valeur, $projet = null, $param = null) { |
//on enleve les GA et Co, les meta ou les "_" |
$this->transliterer($service, $valeur); |
358,6 → 363,30 |
return $url; |
} |
|
static function s_ajouterHrefAutreProjet($service, $ressource, $valeur, $projet = null, $param = null) { |
//on enleve les GA et Co, les meta ou les "_" |
self::s_transliterer($service, $valeur); |
//on définit les nom des projets, des services et des ressources de l'url (dans les méta-donnees) |
$tab = array( |
'langue' => array('service' => 'langues', 'projet' => 'iso-639-1', 'ressource' => ''), |
'couverture_spatiale' => array('service' => 'zone-geo', 'projet' => 'iso-3166-1', 'ressource' => ''), |
'type' => array('service' => 'ontologies', 'projet' => 'eflore', 'ressource' => 'contactType:'), |
'datum' => array('service' => 'ontologies', 'projet' => 'eflore', 'ressource' => 'datum:') |
); |
if (array_key_exists($service, $tab)) { |
extract($tab[$service]); |
} else { |
if (strpos(Config::get('nom_projet'), 'bd') === 0 && $projet == null) { |
$projet = 'bdnt'; |
$service = 'ontologies'; |
$ressource = ''; |
} |
} |
$param = ($param) ? "?".$param : ""; |
$url = Config::get('url_service_base').$projet.'/'.$service.'/'.$ressource.$valeur.$param; |
return $url; |
} |
|
/**Permet de consulter une url et retourne le résultat ou une erreur |
* @param $url */ |
public function consulterHref($url) { |
387,6 → 416,20 |
} |
} |
|
static function s_transliterer(&$service, &$val) { |
if (preg_match('/^.+:(.+)$/', $val, $match)) { |
$val = $match[1]; |
} |
$service = str_replace(array('_Ga','_Co','_meta'), '', $service); |
if ($service == 'rang') { |
$ressource = 'rangTaxo'; |
} elseif (preg_match('/^(statut)(?:_|-)([^_-]+)$/', $service, $match)) { |
$service = $match[1].ucfirst($match[2]); |
} elseif (strrpos($service, 'datum') !== false) { |
$service = 'datum'; |
} |
} |
|
// prend en arguments la valeur de la recherche, les résultats approchés, le paramétre recherche |
// retourne le tableau trié en fonction de la ressemblance entre le résultat approché et la valeur recherchée |
public function trierRechercheFloue($nom_demande, $tab_approchee, $nom) { |
430,6 → 473,20 |
return $tableau; |
} |
|
static function s_recupererTableauConfig($param) { |
$tableau = array(); |
$tableauPartiel = array_map('trim', explode(',', Config::get($param))); |
foreach ($tableauPartiel as $champ) { |
if (strpos($champ, '=') === false) { |
$tableau[] = $champ; |
} else { |
list($cle, $val) = explode('=', $champ); |
$tableau[$cle] = $val; |
} |
} |
return $tableau; |
} |
|
//+------------------------------------------------------------------------------------------------------+ |
// Méthodes d'accès aux objets du Framework |
/** |