From: Raphaël Barrois Date: Thu, 28 Jan 2010 11:39:44 +0000 (+0100) Subject: Adds UFC_Nationality and UFC_Binet X-Git-Tag: xorg/1.0.0~332^2~269 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=0fb3713c0015b933fc66f9aaa86a4563ce566d3f;p=platal.git Adds UFC_Nationality and UFC_Binet Signed-off-by: Raphaël Barrois --- 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();