Index: branches/5.0.x/core/units/helpers/col_picker_helper.php =================================================================== diff -u -N -r13208 -r13290 --- branches/5.0.x/core/units/helpers/col_picker_helper.php (.../col_picker_helper.php) (revision 13208) +++ branches/5.0.x/core/units/helpers/col_picker_helper.php (.../col_picker_helper.php) (revision 13290) @@ -1,6 +1,6 @@ formatterRenamed)) { + $a = preg_replace('/^l[\d]+_/', '', $a); + } + + if (in_array($b, $this->formatterRenamed)) { + $b = preg_replace('/^l[\d]+_/', '', $b); + } + $a_index = array_search($a, $this->PickerData['order']); $b_index = array_search($b, $this->PickerData['order']); if ($a_index == $b_index) { - return 0; - } - return ($a_index < $b_index) ? -1 : 1; + return 0; + } + + return ($a_index < $b_index) ? -1 : 1; } function RebuildColumns($prefix, $current=null) @@ -166,6 +183,12 @@ $titles = array(); $widths = array(); foreach ($conf_fields as $name => $options) { + if (array_key_exists('formatter_renamed', $options) && $options['formatter_renamed']) { + // remove language prefix from field, because formatter renamed column + $this->formatterRenamed[] = $name; + $name = preg_replace('/^l[\d]+_/', '', $name); + } + $fields[$counter] = $name; $titles[$name] = $options['title']; $widths[$name] = array_key_exists('width', $options) ? $options['width'] : 100; // only once per grid ! @@ -200,10 +223,19 @@ { $to_remove = array(); foreach ($fields as $name => $options) { - if (array_search($name, $this->PickerData['hidden_fields']) !== false) { + if (array_key_exists('formatter_renamed', $options) && $options['formatter_renamed']) { + // remove language prefix from field, because formatter renamed column + $name_renamed = preg_replace('/^l[\d]+_/', '', $name); + } + else { + $name_renamed = $name; + } + + if (array_search($name_renamed, $this->PickerData['hidden_fields']) !== false) { $to_remove[] = $name; } } + foreach ($to_remove as $name) { unset($fields[$name]); } Index: branches/5.0.x/core/kernel/utility/formatters/multilang_formatter.php =================================================================== diff -u -N -r13216 -r13290 --- branches/5.0.x/core/kernel/utility/formatters/multilang_formatter.php (.../multilang_formatter.php) (revision 13216) +++ branches/5.0.x/core/kernel/utility/formatters/multilang_formatter.php (.../multilang_formatter.php) (revision 13290) @@ -1,6 +1,6 @@ Application->getUnitOption($object->Prefix, 'Grids', Array()); foreach ($grids as $name => $grid) { if ( getArrayValue($grid, 'Fields', $field_name) ) { + // used by column picker to track column position + $grids[$name]['Fields'][$field_name]['formatter_renamed'] = true; + if (!array_key_exists('format', $grids[$name]['Fields'][$field_name])) { // prevent displaying value from primary language // instead of missing value in current language