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 { |