Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1701 → Rev 1702

/trunk/jrest/services/CoelRecherche.php
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);
 
}
}