public function getWeighedSearchCondition($fields, $searchTerm) { if (!is_array($searchTerm)) { $searchTerm = array($searchTerm); } $if = array(); foreach ($fields as $field => $weight) { foreach ($searchTerm as $term) { $cond = new LikeCond(new ARFieldHandle($this->getClassName(), $field), '%' . $term . '%'); $if[] = 'IF(' . $cond->toString() . ', ' . $weight . ', '; } } return implode('', $if) . 0 . str_repeat(')', count($if)); }