Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1441 → Rev 1442

/trunk/services/modules/0.1/observations/ListeObservations2.php
365,9 → 365,10
}
if(!empty($p['masque.tag'])) {
// i_mots_cles_texte provient de la VIEW v_del_image
$req['where'][] = sprintf('CONCAT(%s) REGEXP %s',
// TODO: remove LOWER() lorsqu'on est sur que les tags sont uniformés en minuscule
$req['where'][] = sprintf('LOWER(CONCAT(%s)) REGEXP %s',
self::sqlAddIfNullPourConcat(array('vdi.mots_cles_texte', 'vdi.i_mots_cles_texte')),
$db->proteger($p['masque.tag']));
$db->proteger(strtolower($p['masque.tag'])));
}
 
if(!empty($p['masque.type'])) {
436,19 → 437,27
$champs_p = array('du.nom', // idem pour le nom
'vdi.nom_utilisateur',
/* 'vdi.i_nom_utilisateur' */ );
 
/*
Note: pour l'heure, étant donnés:
- les CONVERT() de la VIEW del_utilisateur
- DEFAULT CHARSET=latin1 pour tela_prod_v4.annuaire_tela
- DEFAULT CHARSET=utf8 pour tb_cel.cel_obs
et l'âge du capitaine...
- REGEXP est case-sensitive, et collate les caractères accentués
- LIKE est case-insensitive, et collate les caractères accentués
*/
if(! $b) {
$where[] = sprintf('CONCAT(%s) REGEXP %s',
self::sqlAddIfNullPourConcat($champs_n).
',' .
$where[] = sprintf('CONCAT(%s,%s) LIKE %s',
self::sqlAddIfNullPourConcat($champs_n),
self::sqlAddIfNullPourConcat($champs_p),
$db->proteger($val));
$db->proteger("%".$val."%"));
}
else {
$where[] = sprintf('CONCAT(%1$s) REGEXP %2$s AND CONCAT(%1$s) REGEXP %3$s ',
self::sqlAddIfNullPourConcat($champs_n).
',' .
$where[] = sprintf('CONCAT(%1$s,%2$s) LIKE %3$s AND CONCAT(%1$s,%2$s) LIKE %4$s ',
self::sqlAddIfNullPourConcat($champs_n),
self::sqlAddIfNullPourConcat($champs_p),
$db->proteger($a), $db->proteger($b));
$db->proteger("%" . $a . "%"), $db->proteger("%" . $b . "%"));
}
}