Пример #1
0
 public function buildCondition(PlFilter $uf)
 {
     $conds = array();
     foreach ($this->tokens as $i => $token) {
         $sub = $uf->addNameTokensFilter($token);
         if ($this->soundex) {
             $c = XDB::format($sub . '.soundex = {?}', soundex_fr($token));
         } else {
             if ($this->exact) {
                 $c = XDB::format($sub . '.token = {?}', $token);
             } else {
                 $c = $sub . '.token ' . XDB::formatWildcards(XDB::WILDCARD_PREFIX, $token);
             }
         }
         if ($this->flags != null) {
             $c .= XDB::format(' AND ' . $sub . '.flags IN {?}', $this->flags);
         }
         if ($this->general_type) {
             $c .= XDB::format(' AND ' . $sub . '.general_type = {?}', $this->general_type);
         }
         $c .= ' AND (' . $uf->getVisibilityConditionAbsolute(Visibility::EXPORT_PRIVATE) . ' OR ' . $sub . '.general_type != \'nickname\')';
         $conds[] = $c;
     }
     return implode(' AND ', $conds);
 }