Subversion Repositories eFlore/Applications.coel-consultation

Compare Revisions

Ignore whitespace Rev 83 → Rev 84

/trunk/controleurs/Recherche.php
157,7 → 157,7
$parametres = array('mots' => '');
$cle_precedente = null;
foreach ($mots as $mot) {
if (preg_match('/^(sci|bot|zg|p|pr|str-d):(.*)$/', $mot, $match)) {
if (preg_match('/^(sci|veg|bot|zg|p|pr|str-d):(.*)$/', $mot, $match)) {
$cle = $match[1];
$cle_precedente = $cle;
$valeur = $match[2];
180,13 → 180,23
private function remplacerAbreviationParId(&$parametres) {
// liste 27 : Liste des relations entre une collection et une personne (id:1030)
// liste 80 : Liste des types de collection botanique (id:1083)
$params_a_remplacer = array('bot' => 1083, 'pr' => 1030);
$params_a_remplacer = array('veg' => 1043, 'bot' => 1083, 'pr' => 1030);
foreach ($params_a_remplacer as $param => $id_liste) {
if (isset($parametres[$param])) {
$liste = Ontologie::getListeTrieeParAbreviation($id_liste);
$cle = strtoupper($parametres[$param]);
if (isset($liste[$cle])) {
$parametres[$param] = $liste[$cle]['id'];
// Si plusieurs valeurs séparées par des virgules
$valeurs = explode(',', $parametres[$param]);
$valeurs_nbre = count($valeurs);
$liste = Ontologie::getListeTrieeParAbreviation($id_liste);
foreach ($valeurs as $valeur) {
$cle = strtoupper($valeur);
if (isset($liste[$cle])) {
if ($valeurs_nbre == 1) {
$parametres[$param] = $liste[$cle]['id'];
} else if ($valeurs_nbre > 1) {
$valeur = preg_quote($valeur, '/');
$parametres[$param] = preg_replace("/$valeur/", $liste[$cle]['id'], $parametres[$param]);
}
}
}
}
}