From 79a0b464fe9c6791be44ebf8fabfa7fa4af206fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Barrois?= Date: Sun, 24 Jan 2010 13:06:25 +0100 Subject: [PATCH] Add support for exact queries in UFC_NameTokens MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Raphaël Barrois --- classes/userfilter.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/classes/userfilter.php b/classes/userfilter.php index 65cd7c9..098abc6 100644 --- a/classes/userfilter.php +++ b/classes/userfilter.php @@ -165,8 +165,9 @@ class UFC_NameTokens implements UserFilterCondition private $tokens; private $flags; private $soundex; + private $exact; - public function __construct($tokens, $flags = array(), $soundex = false) + public function __construct($tokens, $flags = array(), $soundex = false, $exact = false) { $this->tokens = $tokens; if (is_array($flags)) { @@ -175,14 +176,17 @@ class UFC_NameTokens implements UserFilterCondition $this->flags = array($flags); } $this->soundex = $soundex; + $this->exact = $exact; } public function buildCondition(UserFilter &$uf) { - $sub = $uf->addNameTokensFilter(true); + $sub = $uf->addNameTokensFilter(!($this->exact || $this->soundex)); $conds = array(); if ($this->soundex) { $conds[] = $sub . '.soundex IN ' . XDB::formatArray($this->tokens); + } else if ($this->exact) { + $conds[] = $sub . '.token IN ' . XDB::formatArray($this->tokens); } else { $tokconds = array(); foreach ($this->tokens as $token) { -- 2.1.4