function filter_harmonizer_get_grouped_filter_options in Views Filter Harmonizer 7
Transforms the passed in filter value into the correct grouped filter option.
Parameters
mixed $value: String or array. In the context of this function multiple string values must be separated by |, not spaces.
object $regular_filter: The regular (exposed) filter, which may or may not be grouped.
1 call to filter_harmonizer_get_grouped_filter_options()
- filter_harmonizer_convert_contextual_to_regular_value in ./
filter_harmonizer.module - Convert a supplied contextual filter value to an equivalent exposed value.
File
- ./
filter_harmonizer.module, line 563 - filter_harmonizer.module For Views where both exposed and contextual filters are active on a page.
Code
function filter_harmonizer_get_grouped_filter_options($value, $regular_filter) {
$group_ids = array();
// This appears good enough for Grouped filters for now.
foreach ($regular_filter->options['group_info']['group_items'] as $group_id => $info) {
if (is_array($info['value'])) {
if (isset($info['value']['value'])) {
if (in_array($info['value']['value'], $value)) {
$group_ids[$group_id] = $group_id;
}
}
elseif (array_intersect(array_keys($info['value']), $value)) {
$group_ids[$group_id] = $group_id;
}
}
elseif (is_string($value)) {
// Contextual argument like "holLAND" or "australia|Holland".
// @todo implement Glossary mode?
foreach (explode('|', $value) as $text) {
if (strcasecmp($info['value'], $text) === 0) {
$group_ids[$group_id] = $group_id;
}
}
}
}
return empty($group_ids) ? $value : $group_ids;
}