Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1490 → Rev 1491

/trunk/services/modules/0.1/images/ListeImages2.php
371,7 → 371,15
$req['where'][] = 'dit.actif = 1'; */
 
 
// Note à propos des 4 "@ instruction" ci-dessous (notamment sur recupererTous())
// REGEXP permet un puissant mécanisme de sélection des obs/image à qui sait
// l'utiliser, mais peut sortir une erreur en cas de REGEXP invalide
// ex: REGEX "^(".
// Pour l'heure nous ignorons ce type d'erreur car aucun de nos champ de recherche
// ne peuvent (ou ne devrait) comporter des meta-caractères
// ([])?*+\\
 
 
// ==== commenté pour l'instant pour cause de soucis d'optimiseur MySQL (cf commentaire en intro) ====
/*
if(isset($p['masque.tag_pictoflora']['AND'])) {
398,23 → 406,25
sort($p['masque.tag_pictoflora']['AND']);
 
// plutôt que db->connexion->query->fetchColumn(), une API pourrie nous oblige à ...
$ids = $db->recupererTous(sprintf(
$ids = @$db->recupererTous(sprintf(
"SELECT ce_image FROM del_image_tag WHERE actif = 1".
" GROUP BY ce_image".
" HAVING GROUP_CONCAT(tag_normalise ORDER BY tag_normalise) REGEXP %s",
$db->proteger(implode('.*', $p['masque.tag_pictoflora']['AND']))));
 
// puis:
$ids = array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
$ids = @array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
if($ids) $req['where'][] = sprintf("vdi.id_image IN (%s)", implode(',', $ids));
 
}
else {
$ids = $db->recupererTous(sprintf(
$ids = @$db->recupererTous(sprintf(
"SELECT ce_image FROM del_image_tag WHERE actif = 1".
" GROUP BY ce_image".
" HAVING GROUP_CONCAT(tag_normalise) REGEXP %s",
$db->proteger(implode('|', $p['masque.tag_pictoflora']['OR']))));
$ids = array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
 
$ids = @array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
if($ids) $req['where'][] = sprintf("vdi.id_image IN (%s)", implode(',', $ids));
}