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]); }