function filter_harmonizer_stringify_regular_filter in Views Filter Harmonizer 8
Same name and namespace in other branches
- 1.0.x filter_harmonizer.module \filter_harmonizer_stringify_regular_filter()
Takes a regular filter and outputs its filter value(s) as a string for later use as a contextual argument in the browser URL. For example a GeofieldProximityFilter value may return "-37.8,144.9<=100km".
Parameters
FilterPluginBase $regular_filter.: The regular filter handler with its (exposed) values and optional operator.
ArgumentPluginBase $contextual_filter.: The contextual filter whose arg will be calculated from the regular value.
Return value
string The contextual argument string for use on the browser address bar.
1 call to filter_harmonizer_stringify_regular_filter()
- filter_harmonizer_harmonize_and_record_filter_pairs in ./
filter_harmonizer.module - When a View on a page is first loaded and if a context filter is present, we obey any associated /arg1/arg2/.. on the browser URL/address bar. Then, if regular exposed filters are present too for fields by the same names, and their form values are…
File
- ./
filter_harmonizer.module, line 195 - filter_harmonizer.module
Code
function filter_harmonizer_stringify_regular_filter(FilterPluginBase $regular_filter, ArgumentPluginBase $contextual_filter) {
if (filter_harmonizer_is_empty($regular_filter)) {
return $contextual_filter->argument ?: $contextual_filter->options['exception']['value'];
}
$value = Drupal::moduleHandler()
->invokeAll('filter_harmonizer_stringify_regular_filter', [
$regular_filter,
]);
if (empty($value) && $value != 0) {
$value = $regular_filter->value;
}
if (is_array($value)) {
$isAnd = $regular_filter->operator == 'and';
$delimiter = empty($isAnd) ? '+' : ',';
$value = implode($delimiter, $value);
}
return $value;
}