From: x2003bruneau Date: Thu, 26 Apr 2007 11:38:20 +0000 (+0000) Subject: Fix search on first character X-Git-Tag: xorg/0.9.14~54 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=c16b55626d1dc5796becd6167707a75dd51dc646;p=platal.git Fix search on first character git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1736 839d8a87-29fc-0310-9880-83ba4fa771e5 --- diff --git a/modules/search/classes.inc.php b/modules/search/classes.inc.php index e650e57..a23853b 100644 --- a/modules/search/classes.inc.php +++ b/modules/search/classes.inc.php @@ -249,7 +249,7 @@ class QuickSearch extends SField { $where = Array(); foreach ($this->strings as $i => $s) { - if (Env::i('with_soundex')) { + if (Env::i('with_soundex') && strlen($s) > 1) { $t = soundex_fr($s); $where[] = "sn$i.soundex = '$t'"; } else { @@ -285,11 +285,14 @@ class QuickSearch extends SField { $join = ""; $and = ''; + $uniq = ''; foreach ($this->strings as $i => $s) { if (!S::logged()) { $and = "AND FIND_IN_SET('public', sn$i.flags)"; - } - $join .= "INNER JOIN search_name AS sn$i ON (u.user_id = sn$i.uid $and)\n"; + } + $myu = str_replace('snv', "sn$i", $uniq); + $join .= "INNER JOIN search_name AS sn$i ON (u.user_id = sn$i.uid $and$myu)\n"; + $uniq .= " AND sn$i.token != snv.token"; } return $join; }