Index: branches/RC/core/units/general/helpers/search_helper.php =================================================================== diff -u -r11290 -r11412 --- branches/RC/core/units/general/helpers/search_helper.php (.../search_helper.php) (revision 11290) +++ branches/RC/core/units/general/helpers/search_helper.php (.../search_helper.php) (revision 11412) @@ -392,6 +392,58 @@ } /** + * Checks, that range filters "To" part is defined for given grid + * + * @param string $prefix_special + * @param string $grid_name + * @return bool + */ + function rangeFiltersUsed($prefix_special, $grid_name) + { + static $cache = Array (); + $cache_key = $prefix_special . $grid_name; + + if (array_key_exists($cache_key, $cache)) { + return $cache[$cache_key]; + } + + $view_name = $this->Application->RecallVar($prefix_special . '_current_view'); + $custom_filters = $this->Application->RecallPersistentVar($prefix_special . '_custom_filter.' . $view_name, ALLOW_DEFAULT_SETTINGS); + if (!$custom_filters) { + // filters not defined for given prefix + $cache[$cache_key] = false; + return false; + } + + $custom_filters = unserialize($custom_filters); + if (!array_key_exists($grid_name, $custom_filters)) { + // filters not defined for given grid + $cache[$cache_key] = false; + return false; + } + + $range_filter_defined = false; + + $custom_filter = $custom_filters[$grid_name]; + foreach ($custom_filter as $field_name => $field_options) { + list ($filter_type, $field_options) = each($field_options); + + if (strpos($filter_type, 'range') === false) { + continue; + } + + $to_value = (string)$field_options['submit_value']['to']; + if ($to_value !== '') { + $range_filter_defined = true; + break; + } + } + + $cache[$cache_key] = $range_filter_defined; + return $range_filter_defined; + } + + /** * Return numeric range filter value + checking that it's number * * @param Array $value array containing range filter value