You are here

function bef_replace_query_string_arg in Better Exposed Filters 6

Same name and namespace in other branches
  1. 8.3 better_exposed_filters.theme \bef_replace_query_string_arg()
  2. 6.3 better_exposed_filters.theme \bef_replace_query_string_arg()
  3. 6.2 better_exposed_filters.theme \bef_replace_query_string_arg()
  4. 7.3 better_exposed_filters.theme \bef_replace_query_string_arg()
  5. 7 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 400

Code

function bef_replace_query_string_arg($key, $value, $multiple = FALSE) {
  $path = arg();
  $urllist = parse_url(request_uri());
  $fragment = urldecode($urllist['fragment']);
  $query = array();
  parse_str(urldecode($urllist['query']), $query);
  if (is_array($query[$key])) {

    // multiple values allowed for this key
    $query[$key][] = $value;
  }
  else {
    if ($multiple) {
      $query[$key] = array(
        $value,
      );
    }
    else {
      $query[$key] = $value;
    }
  }
  return url(implode('/', $path), array(
    'query' => drupal_query_string_encode($query),
    'fragment' => $fragment,
    'absolute' => TRUE,
  ));
}