From: Raphaël Barrois Date: Sun, 24 Jan 2010 12:06:25 +0000 (+0100) Subject: Add support for exact queries in UFC_NameTokens X-Git-Tag: xorg/1.0.0~332^2~275 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=79a0b464fe9c6791be44ebf8fabfa7fa4af206fc;p=platal.git Add support for exact queries in UFC_NameTokens Signed-off-by: Raphaël Barrois --- 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) {