Subversion Repositories eFlore/Applications.del

Rev

Rev 1429 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1429 Rev 1442
Line 363... Line 363...
363
		if(!empty($p['masque.commune'])) {
363
		if(!empty($p['masque.commune'])) {
364
			$req['where'][] = 'vdi.zone_geo LIKE '.$db->proteger($p['masque.commune'].'%');
364
			$req['where'][] = 'vdi.zone_geo LIKE '.$db->proteger($p['masque.commune'].'%');
365
		}
365
		}
366
		if(!empty($p['masque.tag'])) {
366
		if(!empty($p['masque.tag'])) {
367
			// i_mots_cles_texte provient de la VIEW v_del_image
367
			// i_mots_cles_texte provient de la VIEW v_del_image
-
 
368
			// TODO: remove LOWER() lorsqu'on est sur que les tags sont uniformés en minuscule
368
			$req['where'][] = sprintf('CONCAT(%s) REGEXP %s',
369
			$req['where'][] = sprintf('LOWER(CONCAT(%s)) REGEXP %s',
369
									  self::sqlAddIfNullPourConcat(array('vdi.mots_cles_texte', 'vdi.i_mots_cles_texte')),
370
									  self::sqlAddIfNullPourConcat(array('vdi.mots_cles_texte', 'vdi.i_mots_cles_texte')),
370
									  $db->proteger($p['masque.tag']));
371
									  $db->proteger(strtolower($p['masque.tag'])));
371
		}
372
		}
Line 372... Line 373...
372
 
373
 
373
		if(!empty($p['masque.type'])) {
374
		if(!empty($p['masque.type'])) {
374
			self::addTypeConstraints($p['masque.type'], $db, $req, $c);
375
			self::addTypeConstraints($p['masque.type'], $db, $req, $c);
Line 434... Line 435...
434
						  'vdi.prenom_utilisateur', // info user anonyme de l'obs
435
						  'vdi.prenom_utilisateur', // info user anonyme de l'obs
435
						  /* 'vdi.i_prenom_utilisateur' */ ); // info user anonyme de l'image
436
						  /* 'vdi.i_prenom_utilisateur' */ ); // info user anonyme de l'image
436
		$champs_p = array('du.nom', // idem pour le nom
437
		$champs_p = array('du.nom', // idem pour le nom
437
						  'vdi.nom_utilisateur',
438
						  'vdi.nom_utilisateur',
438
						  /* 'vdi.i_nom_utilisateur' */ );
439
						  /* 'vdi.i_nom_utilisateur' */ );
-
 
440
 
-
 
441
		/*
-
 
442
		  Note: pour l'heure, étant donnés:
-
 
443
		  - les CONVERT() de la VIEW del_utilisateur
-
 
444
		  - DEFAULT CHARSET=latin1 pour tela_prod_v4.annuaire_tela
-
 
445
		  - DEFAULT CHARSET=utf8 pour tb_cel.cel_obs
-
 
446
		  et l'âge du capitaine...
-
 
447
		  - REGEXP est case-sensitive, et collate les caractères accentués
-
 
448
		  - LIKE est case-insensitive, et collate les caractères accentués
-
 
449
		 */
439
		if(! $b) {
450
		if(! $b) {
440
			$where[] = sprintf('CONCAT(%s) REGEXP %s',
451
			$where[] = sprintf('CONCAT(%s,%s) LIKE %s',
441
							   self::sqlAddIfNullPourConcat($champs_n).
452
							   self::sqlAddIfNullPourConcat($champs_n),
442
							   ',' .
-
 
443
							   self::sqlAddIfNullPourConcat($champs_p),
453
							   self::sqlAddIfNullPourConcat($champs_p),
444
							   $db->proteger($val));
454
							   $db->proteger("%".$val."%"));
445
		}
455
		}
446
		else {
456
		else {
447
			$where[] = sprintf('CONCAT(%1$s) REGEXP %2$s AND CONCAT(%1$s) REGEXP %3$s ',
457
			$where[] = sprintf('CONCAT(%1$s,%2$s) LIKE %3$s AND CONCAT(%1$s,%2$s) LIKE %4$s ',
448
							   self::sqlAddIfNullPourConcat($champs_n).
458
							   self::sqlAddIfNullPourConcat($champs_n),
449
							   ',' .
-
 
450
							   self::sqlAddIfNullPourConcat($champs_p),
459
							   self::sqlAddIfNullPourConcat($champs_p),
451
							   $db->proteger($a), $db->proteger($b));
460
							   $db->proteger("%" . $a . "%"), $db->proteger("%" . $b . "%"));
452
		}
461
		}
453
	}
462
	}
Line 454... Line 463...
454
 
463
 
455
	/*
464
	/*