You are here

function filter_harmonizer_set_browser_url_tail in Views Filter Harmonizer 7

Appends the supplied arguments to the browser address bar base URL.

This works on all modern browsers and on IE since version 10.

Parameters

array $arguments:

1 call to filter_harmonizer_set_browser_url_tail()
filter_harmonizer_views_exposed_form_submit in ./filter_harmonizer.module
Supplementary submit handler for 'views_exposed_form'.

File

./filter_harmonizer.module, line 303
filter_harmonizer.module For Views where both exposed and contextual filters are active on a page.

Code

function filter_harmonizer_set_browser_url_tail($arguments) {
  if (empty($arguments)) {
    return;
  }
  global $base_path;
  $menu_item = menu_get_item();
  $browser_url_tail = '';
  $i = 0;
  $args = array_values($arguments);
  foreach (explode('/', $menu_item['path']) as $segment) {
    $browser_url_tail .= ($segment == '%' && isset($args[$i]) ? $args[$i++] : $segment) . '/';
  }
  for (; $i < count($args); $i++) {
    if (!empty($args[$i])) {
      $browser_url_tail .= $args[$i] . '/';
    }
  }
  $js = drupal_get_path('module', 'filter_harmonizer') . '/filter_harmonizer.js';
  drupal_add_js($js);
  drupal_add_js(array(
    'filter_harmonizer_url' => $base_path . $browser_url_tail,
  ), 'setting');
}