Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1505 → Rev 1506

/trunk/jrest/services/CoelRecherche.php
113,10 → 113,11
'zg' => 'str',
'p' => 'str',
'pr' => 'int',
'str-d' => 'defaut');
'str-d' => 'defaut',
'veg' => 'int');
$p = $this->traiterParametresUrl(array_keys($params_passes), $param, false);
$this->debug[] = $param;
foreach ($params_passes as $param_passe => $type) {
if (isset($p[$param_passe])) {
// Suppression des éventuels espaces en début et fin de chaine
145,7 → 146,7
} else if (preg_match('/^[1]$/', $valeur)) {
$valeur = true;
} else {
$this->message[] = "Le paramêtre '$param_passe' attend une valeur de type 0 ou 1 et non '$valeur'.";
$this->messages[] = "Le paramêtre '$param_passe' attend une valeur de type 0 ou 1 et non '$valeur'.";
$valeur = null;
}
153,7 → 154,7
// Type de paramêtre entier
if ($type == 'int') {
if (!preg_match('/^(?:[0-9]+,\s*)*[0-9]+$/', $valeur)) {
$this->message[] = "Le paramêtre '$param_passe' attend une ou plusieurs valeurs de type entiers ".
$this->messages[] = "Le paramêtre '$param_passe' attend une ou plusieurs valeurs de type entiers ".
"séparés par des virgules et non '$valeur'.";
$valeur = null;
}
162,6 → 163,7
$p[$param_passe] = $valeur;
}
}
return $p;
}
183,13 → 185,19
" OR cc_historique LIKE {$p['mots']} ".
" OR cs_nom LIKE {$p['mots']} ".
" OR cs_truk_nom_alternatif LIKE {$p['mots']} ".
" OR cs_description LIKE {$p['mots']} ".
" OR cs_adresse_01 LIKE {$p['mots']} ".
" OR cs_adresse_02 LIKE {$p['mots']} ".
" OR cs_ville LIKE {$p['mots']} ".
" OR cs_truk_identifiant_alternatif LIKE {$p['mots']} ".
" OR cs_condition_acces LIKE {$p['mots']} ".
" OR cs_condition_usage LIKE {$p['mots']} ".
" OR cs_truk_telephone LIKE {$p['mots']} ".
" OR cs_courriel LIKE {$p['mots']} ".
" OR cs_truk_url LIKE {$p['mots']} ".
') ';
}
$this->debug[] = $p;
if (isset($p['sci'])) {
if ($p['sci'] === true) {
$where .= 'AND csv_mark_visite_avec_motif = 1 ';
213,8 → 221,22
$where .= 'AND cs_ce_truk_pays = 2654 '.
"AND cs_code_postal LIKE '{$p['str-d']}%' ";
}
if (isset($p['veg'])) {
$veg = explode(',', $p['veg']);
$veg_nbre = count($veg);
if ($veg_nbre == 1) {
$where .= "AND ccb_truk_nature LIKE '%{$p['veg']}%' ";
} else {
$recherche = array();
foreach ($veg as $id) {
$recherche[] = "ccb_truk_nature LIKE '%$id%'";
}
$where .= 'AND ('.implode(' OR ', $recherche).') ';
}
}
$where = str_replace('WHERE AND', 'WHERE', $where);
// Gestion du from en fonction des paramêtres
221,7 → 243,7
if (isset($p['sci'])) {
$from .= ' LEFT JOIN coel_structure_valorisation ON (cs_id_structure = csv_id_structure) ';
}
if (isset($p['bot'])) {
if (isset($p['bot']) || isset($p['veg'])) {
$from .= ' LEFT JOIN coel_collection_botanique ON (cc_id_collection = ccb_id_collection) ';
}
if (isset($p['p']) || isset($p['pr'])) {
232,7 → 254,6
}
// Retour du From et Where associé
$this->debug[] = count($p);
if (count($p) == 0) {
$from_et_where = $from;
} else {