Index: branches/5.2.x/core/units/filters/item_filter_tp.php =================================================================== diff -u -N -r14892 -r14893 --- branches/5.2.x/core/units/filters/item_filter_tp.php (.../item_filter_tp.php) (revision 14892) +++ branches/5.2.x/core/units/filters/item_filter_tp.php (.../item_filter_tp.php) (revision 14893) @@ -90,7 +90,9 @@ $range_start = $range_values['MinValue']; $range_count = $object->GetDBField('RangeCount'); - $range_size = ceil( ($range_values['MaxValue'] - $range_values['MinValue']) / ($range_count /*+ 1*/) ); + $range_size = ceil( ($range_values['MaxValue'] - $range_values['MinValue']) / $range_count ); + $range_values['MaxValue'] = $range_start + $range_size * $range_count; // to compensate diff, created by "ceil" function usage + $formatter_class = $item_list->GetFieldOption($filter_field, 'formatter'); $options = Array (); @@ -173,8 +175,19 @@ $this->Application->SetVar('min_range_value', $range_values['MinValue']); $this->Application->SetVar('max_range_value', $range_values['MaxValue']); - $range_size = ceil( ($range_values['MaxValue'] - $range_values['MinValue']) / ($range_count + 1) ); + $range_size = ceil( ($range_values['MaxValue'] - $range_values['MinValue']) / $range_count ); $this->Application->SetVar('range_step', $range_size); + + if ( $selected_value ) { + list ($from_selected_value, $to_selected_value) = explode('-', $selected_value); + + $this->Application->SetVar('selected_from_range', $from_selected_value); + $this->Application->SetVar('selected_to_range', $to_selected_value); + } + else { + $this->Application->SetVar('selected_from_range', $range_values['MinValue']); + $this->Application->SetVar('selected_to_range', $range_values['MaxValue']); + } } return $ret;