You are here

function _global_filter_remove_default_filter_from_views in Views Global Filter 6

3 calls to _global_filter_remove_default_filter_from_views()
global_filter_block_info in ./global_filter.blocks.inc
global_filter_block_save in ./global_filter.blocks.inc
global_filter_uninstall in ./global_filter.install
Implements hook_uninstall().

File

./global_filter.module, line 412
global_filter.module

Code

function _global_filter_remove_default_filter_from_views($field_name) {
  $views = views_get_all_views();

  // Go through all Views and delete the default global filter if it exists.
  foreach ($views as $view) {
    foreach ($view->display as $display_name => $display) {
      if (isset($display->display_options['arguments'])) {
        $arguments = $display->display_options['arguments'];
        if (isset($arguments[$field_name]) || isset($arguments[$field_name . '_value']) || isset($arguments[$field_name . '_tid'])) {
          unset($view->display[$display_name]->display_options['arguments'][$field_name]);
          unset($view->display[$display_name]->display_options['arguments'][$field_name . '_value']);
          unset($view->display[$display_name]->display_options['arguments'][$field_name . '_tid']);
          drupal_set_message(t('As the global filter %old_filter was deleted, it was removed as the default argument from the view %view.', array(
            '%old_filter' => $field_name,
            '%view' => empty($view->human_name) ? $view->name : $view->human_name,
          )));
          $view
            ->save();
          views_object_cache_clear('view', $view->name);
          $clear_cache = TRUE;
        }
      }
    }
  }
  if ($clear_cache) {
    cache_clear_all('*', 'cache_views');
  }
}