function bef_replace_query_string_arg in Better Exposed Filters 7
Same name and namespace in other branches
- 8.3 better_exposed_filters.theme \bef_replace_query_string_arg()
- 6.3 better_exposed_filters.theme \bef_replace_query_string_arg()
- 6 better_exposed_filters.theme \bef_replace_query_string_arg()
- 6.2 better_exposed_filters.theme \bef_replace_query_string_arg()
- 7.3 better_exposed_filters.theme \bef_replace_query_string_arg()
Replaces/adds a given query string argument to the current URL
Parameters
string $key query string key (argument):
string $value query string value:
bool $multiple TRUE if this key/value pair allows multiple values:
1 call to bef_replace_query_string_arg()
- theme_select_as_links in ./
better_exposed_filters.theme - Themes a select drop-down as a collection of links
File
- ./
better_exposed_filters.theme, line 510
Code
function bef_replace_query_string_arg($key, $value, $multiple = FALSE) {
$path = arg();
// Prevents us from having to check for each index from parse_url that we may use
$urllist = array(
'path' => '',
'fragment' => '',
'query' => '',
);
$urllist = array_merge($urllist, parse_url(request_uri()));
$fragment = urldecode($urllist['fragment']);
$query = array();
parse_str(urldecode($urllist['query']), $query);
if (isset($query[$key]) && is_array($query[$key])) {
// multiple values allowed for this existing key
$query[$key][] = $value;
}
else {
// Create a new key
if ($multiple) {
$query[$key] = array(
$value,
);
}
else {
$query[$key] = $value;
}
}
return url(implode('/', $path), array(
'query' => $query,
'fragment' => $fragment,
'absolute' => TRUE,
));
}