function contextual_range_filter_views_data_alter in Views Contextual Range Filter 7
Same name and namespace in other branches
- 8 contextual_range_filter.views.inc \contextual_range_filter_views_data_alter()
Implements hook_views_data_alter().
Changes argument handlers to corresponding range argument handlers.
This function finds all field and property argument handlers.
File
- views/
contextual_range_filter.views.inc, line 16 - contextual_range_filter_views.inc
Code
function contextual_range_filter_views_data_alter(&$data) {
$numeric_field_names = array_filter(variable_get('contextual_range_filter_numeric_field_names', array()));
$string_field_names = array_filter(variable_get('contextual_range_filter_string_field_names', array()));
$list_field_names = array_filter(variable_get('contextual_range_filter_list_field_names', array()));
$date_field_names = array_filter(variable_get('contextual_range_filter_date_field_names', array()));
foreach ($data as $table_name => $table_data) {
foreach ($table_data as $field_name => $field_data) {
if (isset($field_data['argument']['handler'])) {
// If listed on the configuration page, switch this argument handler
// to its corresponding argument RANGE handler.
$full_name = "{$table_name}:{$field_name}";
if (in_array($full_name, $numeric_field_names)) {
$data[$table_name][$field_name]['argument']['handler'] = 'contextual_range_filter_handler_argument_numeric_range';
}
elseif (in_array($full_name, $string_field_names)) {
$data[$table_name][$field_name]['argument']['handler'] = 'contextual_range_filter_handler_argument_string_range';
}
elseif (in_array($full_name, $list_field_names)) {
$data[$table_name][$field_name]['argument']['handler'] = 'contextual_range_filter_handler_argument_list_range';
}
elseif (in_array($full_name, $date_field_names)) {
$data[$table_name][$field_name]['argument']['handler'] = 'contextual_range_filter_handler_argument_date_range';
}
}
}
}
}