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]);
}
}
}
}
}
/trunk/modeles/RechercheDao.php
42,7 → 42,7
private function construireUrlRecherche($type, $parametres, $limitation = true) {
$url = $this->url_jrest.self::SERVICE.'/'.$type;
$params_a_passer = array('mots', 'sci', 'bot', 'zg', 'p', 'pr', 'str-d');
$params_a_passer = array('mots', 'sci', 'bot', 'zg', 'p', 'pr', 'str-d', 'veg');
foreach ($params_a_passer as $param_cle) {
if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') {
$valeur = urlencode(trim($parametres[$param_cle]));
58,7 → 58,6
} else {
$url .= "?distinct={$this->getDistinction()}";
}
return $url;
}
}
/trunk/squelettes/moteur.tpl.html
33,6 → 33,7
<p>Le moteur de recherche permet d'utiliser des opérateurs dans le texte recherché pour préciser la requête.</p>
<p>Exemples&nbsp;: <a href="<?=Recherche::getUrlExemple('mpu')?>">mpu</a>,
<a href="<?=Recherche::getUrlExemple('"herbier de Coste"')?>">"herbier de Coste"</a>,
<a href="<?=Recherche::getUrlExemple('veg:br')?>">veg:br</a>,
<a href="<?=Recherche::getUrlExemple('bot:he')?>">bot:he</a>,
<a href="<?=Recherche::getUrlExemple('Coste bot:he')?>">Coste bot:he</a>,
<a href="<?=Recherche::getUrlExemple('herbier zg:France')?>">herbier zg:France</a>,
58,8 → 59,22
<td><a href="<?=Recherche::getUrlExemple('sci:0')?>">sci:0</a></td>
</tr>
<tr>
<td>veg:</td>
<td>Liste : PH (Phanérogames), GY (<span title="Conifères">Gymnospermes</span>),
AN (<span title="Plantes à fleur">Angiospermes</span>), CR (Cryptogames),
AL (<span title="Y compris Characées et Diatomées">Algues</span>),
CH (Champignons),
LI (Lichens),
BR (<span title="Mousses">Bryophytes</span>),
PT (<span title="Fougères">Ptéridophytes</span>).</td>
<td>Nature végétale du contenu de la collection botanique</td>
<td>Limite les résultats aux collections botaniques dont la nature végétale du contenu correspond
au type indiqué.</td>
<td><a href="<?=Recherche::getUrlExemple('veg:br')?>">veg:br</a></td>
</tr>
<tr>
<td>bot:</td>
<td>HE (Herbier), CE (Centurie - conservée en dehors d'un herbier), DR (Droguier), CA (Carpothèque),
<td>Liste : HE (Herbier), CE (Centurie - conservée en dehors d'un herbier), DR (Droguier), CA (Carpothèque),
AL (Collection en alcool), XY (Xylothèque), PM (Collection de préparations microscopiques).</td>
<td>Type de collection botanique</td>
<td>Limite les résultats aux collections botaniques du type indiqué.</td>
82,7 → 97,7
</tr>
<tr>
<td>pr:</td>
<td>CT (Contributeur), AU (Auteur), CO (Collecteur), DE (Déterminateur), HE
<td>Liste : CT (Contributeur), AU (Auteur), CO (Collecteur), DE (Déterminateur), HE
(Hébergeur - particulier possédant une collection chez lui).</td>
<td>Rôle d'une personne.</td>
<td>Limite les résultats aux institutions et collections liées a une personne dont le rôle
91,16 → 106,19
</tr>
</tbody>
</table>
<p>Pour les opérateurs dont la valeur possible est un <em>texte libre</em>, il est possible d'utiliser des jokers.
Ces "jokers" permettent de modifier la recherche sur une chaine de caractères.</p>
<p>Pour les opérateurs dont la valeur est un <em>texte libre</em> ou une <em>liste</em>,
il est possible d'utiliser des jokers.
Ces "jokers" permettent de modifier la recherche.</p>
<p>Exemples&nbsp;: <a href="<?=Recherche::getUrlExemple('"herbier de Coste"')?>">"herbier de Coste"</a>,
<a href="<?=Recherche::getUrlExemple('"herbier % Montpellier"')?>">"herbier % Montpellier"</a>,
<a href="<?=Recherche::getUrlExemple('p:"Jo_l"')?>">p:"Jo_l"</a>.
<a href="<?=Recherche::getUrlExemple('veg:br,cr')?>">veg:br,cr</a>.
</p>
<table>
<thead>
<tr>
<th>Joker</th>
<th>Applicable sur</th>
<th>Explication</th>
<th>Exemples</th>
</tr>
108,6 → 126,7
<tbody>
<tr>
<td>""</td>
<td>Texte libre</td>
<td>Permet de rechercher sur une expression exacte.</td>
<td><a href="<?=Recherche::getUrlExemple('"Archives de l\'herbier Granger"')?>">
"Archives de l'herbier Granger"</a></td>
114,6 → 133,7
</tr>
<tr>
<td>%</td>
<td>Texte libre</td>
<td>Remplace n'importe quel nombre de caractères, y compris aucun.</td>
<td><a href="<?=Recherche::getUrlExemple('"herbier %Abbé% Carondelet"')?>">
"herbier %Abbé% Carondelet"</a></td>
120,9 → 140,16
</tr>
<tr>
<td>_</td>
<td>Texte libre</td>
<td>Remplace exactement un caractère</td>
<td><a href="<?=Recherche::getUrlExemple('p:"Jo_l"')?>">p:"Jo_l"</a></td>
</tr>
<tr>
<td>,</td>
<td>Liste</td>
<td>Permet d'indiquer plusieurs valeurs</td>
<td><a href="<?=Recherche::getUrlExemple('veg:br,ph')?>">veg:br,ph</a></td>
</tr>
</tbody>
</table>
</div>