From 0fb3713c0015b933fc66f9aaa86a4563ce566d3f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Barrois?= Date: Thu, 28 Jan 2010 12:39:44 +0100 Subject: [PATCH] Adds UFC_Nationality and UFC_Binet MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Raphaël Barrois --- classes/userfilter.php | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/classes/userfilter.php b/classes/userfilter.php index 29430ab..d6ce657 100644 --- a/classes/userfilter.php +++ b/classes/userfilter.php @@ -201,6 +201,30 @@ class UFC_NameTokens implements UserFilterCondition } // }}} +// {{{ class UFC_Nationality +class UFC_Nationality implements UserFilterCondition +{ + private $nationality; + + public function __construct($nationality) + { + $this->nationality = $nationality; + } + + public function buildCondition(PlFilter &$uf) + { + $uf->requireProfiles(); + $nat = XDB::format('{?}', $this->nationality); + $conds = array( + 'p.nationality1 = ' . $nat, + 'p.nationality2 = ' . $nat, + 'p.nationality3 = ' . $nat, + ); + return implode(' OR ', $conds); + } +} +// }}} + // {{{ class UFC_Dead /** Filters users based on death date * @param $comparison Comparison operator @@ -358,6 +382,24 @@ class UFC_Group implements UserFilterCondition } // }}} +// {{{ class UFC_Binet +class UFC_Binet implements UserFilterCondition +{ + private $binet; + + public function __construct($binet) + { + $this->binet = $binet; + } + + public function buildCondition(PlFilter &$uf) + { + $sub = $uf->addBinetsFilter(); + return $sub . 'binet_id = ' . XDB::format('{?}', $this->binet); + } +} +// }}} + // {{{ class UFC_Email /** Filters users based on email address * @param $email Email whose owner we are looking for @@ -1830,6 +1872,26 @@ class UserFilter extends PlFilter return $joins; } + /** BINETS + */ + + private $with_binets = false; + public function addBinetsFilter() + { + $this->requireProfiles(); + $this->with_binets = true; + return 'bi'; + } + + protected function binetsJoins() + { + $joins = array(); + if ($this->with_binets) { + $joins['bi'] = new PlSqlJoin(PlSqlJoin::MODE_LEFT, 'binets_ins', '$ME.uid = $PID'); + } + return $joins; + } + /** EMAILS */ private $e = array(); -- 2.1.4