50,7 → 50,7 |
$info = array(); |
|
// Pré traitement des paramêtres |
$p = $this->pretraiterParametresUrl($param); |
$p = $this->pretraiterParametresUrl($param, $_GET); |
|
$fromClause = $whereClause = $joinClause = array(); |
self::construireFromEtWhere($p, $fromClause, $joinClause, $whereClause); |
99,7 → 99,7 |
$info = array(); |
|
// Pré traitement des paramêtres |
$p = $this->pretraiterParametresUrl($param); |
$p = $this->pretraiterParametresUrl($param, $_GET); |
|
$fromClause = $whereClause = $joinClause = array(); |
self::construireFromEtWhere($p, $fromClause, $joinClause, $whereClause); |
137,7 → 137,7 |
return $info; |
} |
|
private function pretraiterParametresUrl($param) { |
private function pretraiterParametresUrl($param, $qs /* query-string */) { |
// Tableau des paramêtres qui peuvent être passés dans l'url |
$params_passes = array( |
'mots' => 'str', |
201,7 → 201,12 |
$p[$param_passe] = $valeur; |
} |
} |
|
|
if(isset($qs['pays'])) { |
$p['pays'] = array_filter(explode(',', $qs['pays']), create_function('$val', 'return preg_match("/^[A-Z][A-Z]$/", $val);')); |
if(!$p['pays']) unset($p['pays']); |
} |
|
return $p; |
} |
|
259,11 → 264,19 |
if (isset($p['pr'])) { |
$where[] = "ccap_id_role IN ({$p['pr']})"; |
} |
|
// par défaut, spécifier un département restreint à la France |
if (isset($p['str-d'])) { |
$where[] = 'cs_ce_truk_pays = 2654'; |
$join[] = 'LEFT JOIN coel_meta_liste_valeur cv ON cv.cmlv_id_valeur = cs_ce_truk_pays'; |
$where[] = 'cv.cmlv_abreviation = "FR"'; |
$where[] = sprintf("cs_code_postal REGEXP '^(%s).*'", implode('|', $p['str-d'])); |
} |
|
if (isset($p['pays'])) { |
$join[] = 'LEFT JOIN coel_meta_liste_valeur cv ON cv.cmlv_id_valeur = cs_ce_truk_pays'; |
$where[] = sprintf('cv.cmlv_abreviation IN ("%s")', implode('","', $p['pays'])); |
} |
|
if (isset($p['veg'])) { |
$veg = explode(',', $p['veg']); |
$veg_nbre = count($veg); |
297,5 → 310,9 |
if (isset($p['p'])) { |
$join[] = 'LEFT JOIN coel_personne ON (ccap_id_personne = cp_id_personne)'; |
} |
|
|
$join = array_unique($join); |
|
} |
} |