Index: branches/5.2.x/core/kernel/db/cat_tag_processor.php =================================================================== diff -u -N -r13840 -r14092 --- branches/5.2.x/core/kernel/db/cat_tag_processor.php (.../cat_tag_processor.php) (revision 13840) +++ branches/5.2.x/core/kernel/db/cat_tag_processor.php (.../cat_tag_processor.php) (revision 14092) @@ -1,6 +1,6 @@ getObject($params); /* @var $object kDBItem */ - $cache_key = 'product_additional_images[%PIDSerial:' . $object->GetID() . '%]'; + $cache_key = $object->Prefix . '_additional_images[%' . $this->Application->incrementCacheSerial($object->Prefix, $object->GetID(), false) . '%]'; $ret = $this->Application->getCache($cache_key); if ($ret === false) { @@ -433,18 +433,19 @@ { $list =& $this->GetList($params); $user_sorting_start = $this->getUserSortIndex(); - - $sorting_field = $list->GetOrderField($user_sorting_start); - $sorting = strtolower($sorting_field . '|' . $list->GetOrderDirection($user_sorting_start)); - + + list ($sorting_field, $sorting_direction) = explode('|', $params['sorting']); + $sorting_field = preg_replace('/^l[\d]+_(.*)/', '\\1', $sorting_field); // remove language prefix (if any) $field_options = $list->GetFieldOptions($sorting_field); + if (array_key_exists('formatter', $field_options) && $field_options['formatter'] == 'kMultiLanguage') { - // remove language prefix - $sorting = preg_replace('/^l[\d]+_(.*)/', '\\1', $sorting); - $params['sorting'] = preg_replace('/^l[\d]+_(.*)/', '\\1', $params['sorting']); + // remove language prefix for $sorting_field + $params['sorting'] = $list->getMLSortField($sorting_field) . '|' . $sorting_direction; } - - return $sorting == strtolower($params['sorting']) ? $params['selected'] : ''; + + $current_sorting = $list->GetOrderField($user_sorting_start) . '|' . $list->GetOrderDirection($user_sorting_start); + + return strtolower($current_sorting) == strtolower($params['sorting']) ? $params['selected'] : ''; } function CombinedSortingDropDownName($params)