56,7 → 56,7 |
static $allow_champs = array( |
'coste:nn' => 'c.num_nom', |
'bdtfx:nn' => 'IF(c.flore_bdtfx_nn = "",NULL,c.flore_bdtfx_nn)', |
'bdtfx:nt' => 'c.flore_bdtfx_nt', |
'bdtfx:nt' => 'IF(c.flore_bdtfx_nt = "",NULL,c.flore_bdtfx_nt)', |
'num_nom' => 'c.num_nom', |
'num_nom_retenu' => 'c.num_nom_retenu', |
'num_tax_sup' => 'c.num_tax_sup', |
109,7 → 109,7 |
static $special_champs = array('nom_sci_html', 'nom_sci', '*', 'flore_bdtfx_nn', 'flore_bdtfx_nt', 'num_nom'); |
|
// ces champs sont toujours dans les résultats (cf sqlSelectFields() |
static $champs_obligatoires = array('coste:nn', 'bdtfx:nn'); |
static $champs_obligatoires = array('coste:nn', 'bdtfx:nn', 'bdtfx:nt'); |
|
|
// le pattern utilisé pour la recherche dite "floue" |
146,7 → 146,6 |
// XXX: temporaires, passage de $db aux fonctions |
// de toolkits |
$req = self::getCosteInfo($params, $db); |
|
$res = $db->recupererTous($req); |
$err = mysql_error(); |
if (!$res && $err) { |
183,7 → 182,7 |
'limite' => $params['navigation.limite'], |
'total' => count($res2), |
'match' => $matches), |
'resultats' => $res2); |
'resultats' => $res2); |
} |
|
|
200,7 → 199,7 |
|
// joins: |
$other_join = self::sqlAddJoins($params, $champs_valides_non_formattes); |
$requete_tpl = "SELECT SQL_CALC_FOUND_ROWS %s". |
$requete_tpl = "SELECT SQL_CALC_FOUND_ROWS %s ". |
"FROM tb_eflore.coste_v2_00 c ". |
" LEFT JOIN tela_prod_wikini.florecoste_pages dsc ON c.page_wiki_dsc = dsc.tag AND dsc.latest = 'Y' ". |
" LEFT JOIN tela_prod_wikini.florecoste_pages cle ON c.page_wiki_cle = cle.tag AND cle.latest = 'Y' ". |
283,12 → 282,15 |
// comportant un #id existe, cf self::requestFilterIds() |
$o_stack = array(); |
if (array_key_exists('_ids', $params) && $params['_ids']) { |
if ($params['_ids']['coste']) { |
$o_stack[] = sprintf("c.num_nom IN (%s)", implode(',', $params['_ids']['coste'])); |
if ($params['_ids']['coste.nn']) { |
$o_stack[] = sprintf("c.num_nom IN (%s)", implode(',', $params['_ids']['coste.nn'])); |
} |
if ($params['_ids']['bdtfx']) { |
$o_stack[] = sprintf("c.flore_bdtfx_nn IN (%s)", implode(',', $params['_ids']['bdtfx'])); |
if ($params['_ids']['bdtfx.nn']) { |
$o_stack[] = sprintf("c.flore_bdtfx_nn IN (%s)", implode(',', $params['_ids']['bdtfx.nn'])); |
} |
if ($params['_ids']['bdtfx.nt']) { |
$o_stack[] = sprintf("c.flore_bdtfx_nt IN (%s)", implode(',', $params['_ids']['bdtfx.nt'])); |
} |
} |
if ($o_stack) { |
$stack[] = '(' . implode(' OR ', $o_stack) . ')'; |
362,12 → 364,13 |
// request handler |
static function requestParse(&$ressource, &$params) { |
if (isset($_SERVER['REDIRECT_URL'])) { |
$uri = explode('/', $_SERVER['REDIRECT_URL']); |
} else { |
$uri = explode('/', $_SERVER['REQUEST_URI']); |
} |
if(!empty($_SERVER['QUERY_STRING'])) |
$uri = explode('/', $_SERVER['REDIRECT_URL']); |
} else { |
$uri = explode('/', $_SERVER['REQUEST_URI']); |
} |
if (!empty($_SERVER['QUERY_STRING'])) { |
parse_str($_SERVER['QUERY_STRING'], $params); |
} |
$ressource = array_slice($uri, array_search('textes', $uri) + 1, 3); |
} |
|
443,18 → 446,20 |
// - soit un id selon coste (num_nom dans coste_v2_00) |
// - soit un id selon bdtfx (num_nom dans bdtfx_v2_00) |
// ou bien l'extrait du pattern bdtfx.nn:(#id) |
$ids_coste = array_filter(array_map(array(__CLASS__, 'getNNCoste'), explode(',', $uri[0]))); |
$ids_bdtfx = array_filter(array_map(array(__CLASS__, 'getNNBdtfx'), explode(',', $uri[0]))); |
$ids_coste_nn = array_filter(array_map(array(__CLASS__, 'getNNCoste'), explode(',', $uri[0]))); |
$ids_bdtfx_nn = array_filter(array_map(array(__CLASS__, 'getNNBdtfx'), explode(',', $uri[0]))); |
$ids_bdtfx_nt = array_filter(array_map(array(__CLASS__, 'getNTBdtfx'), explode(',', $uri[0]))); |
|
// en cas d'échec (tous les id sont invalides), bail-out |
if(!$ids_bdtfx && !$ids_coste) { |
if(!$ids_bdtfx_nt && !$ids_bdtfx_nn && !$ids_coste_nn) { |
// http_response_code(500); |
throw new Exception('not supported', 500); |
} |
|
return array( |
'coste' => array_slice($ids_coste, 0, intval(_COSTE_TEXTE_MAX_RESULT_LIMIT / 2) ), |
'bdtfx' => array_slice($ids_bdtfx, 0, intval(_COSTE_TEXTE_MAX_RESULT_LIMIT / 2) ) |
'coste.nn' => array_slice($ids_coste_nn, 0, intval(_COSTE_TEXTE_MAX_RESULT_LIMIT / 2) ), |
'bdtfx.nn' => array_slice($ids_bdtfx_nn, 0, intval(_COSTE_TEXTE_MAX_RESULT_LIMIT / 2) ), |
'bdtfx.nt' => array_slice($ids_bdtfx_nt, 0, intval(_COSTE_TEXTE_MAX_RESULT_LIMIT / 2) ) |
); |
} |
|
512,4 → 517,11 |
if($t >= 1 && $t < _COSTE_TEXTE_MAX_BDTFX_NN) return $t; |
return FALSE; |
} |
|
static function getNTBdtfx($refnt) { |
if(strpos($refnt, 'bdtfx.nt:') !== 0) return FALSE; |
$t = intval(str_replace('bdtfx.nt:', '', $refnt)); |
if($t >= 1 && $t < _COSTE_TEXTE_MAX_BDTFX_NT) return $t; |
return FALSE; |
} |
} |
Property changes: |
Added: svn:mergeinfo |
Merged /branches/v5.8-aspergeraie/services/modules/0.1/coste/Textes.php:r1083 |
Merged /branches/v5.7-arrayanal/services/modules/0.1/coste/Textes.php:r1050,1052 |
Merged /branches/v5.1-acheb/services/modules/0.1/coste/Textes.php:r927 |
Merged /branches/v5.2-alpage/services/modules/0.1/coste/Textes.php:r976,978 |