Index: branches/unlabeled/unlabeled-1.64.2/core/units/general/cat_event_handler.php =================================================================== diff -u -r5921 -r5970 --- branches/unlabeled/unlabeled-1.64.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 5921) +++ branches/unlabeled/unlabeled-1.64.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 5970) @@ -692,7 +692,14 @@ // processing multilingual fields if (getArrayValue($options, 'formatter') == 'kMultiLanguage') { + $field_list[$key.'_primary'] = 'l'.$this->Application->GetDefaultLanguageId().'_'.$field; $field_list[$key] = 'l'.$lang.'_'.$field; + + if(!isset($search_config[$field]['ForeignField'])) + { + $field_list[$key.'_primary'] = $local_table.'.'.$field_list[$key.'_primary']; + $search_config_map[ $field_list[$key.'_primary'] ] = $field; + } } // processing fields from other tables @@ -767,11 +774,11 @@ $revelance_parts = Array(); reset($search_config); foreach ($field_list as $field) { - $config_elem = each($search_config); - $weight = $search_config[ $search_config_map[$field] ]['Priority']; + $config_elem = $search_config[ $search_config_map[$field] ]; + $weight = $config_elem['Priority']; $revelance_parts[] = 'IF('.$field.' LIKE "%'.implode(' ', $positive_words).'%", '.$weight_sum.', 0)'; foreach ($positive_words as $keyword) { - $revelance_parts[] = 'IF('.$field.' LIKE "%'.$keyword.'%", '.$config_elem['value']['Priority'].', 0)'; + $revelance_parts[] = 'IF('.$field.' LIKE "%'.$keyword.'%", '.$weight.', 0)'; } } $rel_keywords = $this->Application->ConfigValue('SearchRel_Keyword_products') / 100;