Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -r3559 -r3597 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 3559) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 3597) @@ -1363,14 +1363,22 @@ { case 'kOptionsFormatter': $search_keys = Array(); - $use_phrases = getArrayValue($object->Fields[$search_field], 'use_phrases'); - foreach($object->Fields[$search_field]['options'] as $key => $val) - { - $pattern = '#'.$keyword.'#i'; - if ( preg_match($pattern, $use_phrases ? $this->Application->Phrase($val) : $val) ) { - array_push($search_keys, $this->Conn->qstr($key)); + + $field_value = getArrayValue($custom_filters, $search_field); + if ($field_value !== false) { + array_push($search_keys, $this->Conn->qstr($field_value)); + } + else { + $use_phrases = getArrayValue($object->Fields[$search_field], 'use_phrases'); + foreach($object->Fields[$search_field]['options'] as $key => $val) + { + $pattern = '#'.$keyword.'#i'; + if ( preg_match($pattern, $use_phrases ? $this->Application->Phrase($val) : $val) ) { + array_push($search_keys, $this->Conn->qstr($key)); + } } } + if (count($search_keys) > 0) { $filter_value = $table_name.'`'.$search_field.'` IN ('.implode(',', $search_keys).')'; }