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]); |
} |
} |
} |
} |
} |