You are here

function global_filter_block_info in Views Global Filter 8

Same name and namespace in other branches
  1. 6 global_filter.blocks.inc \global_filter_block_info()
  2. 7 global_filter.blocks.inc \global_filter_block_info()

Implements hook_block_info().

File

./global_filter.blocks.inc, line 14
global_filter.block.inc

Code

function global_filter_block_info() {
  $num_filter_blocks = global_filter_get_module_parameter('num_filters', GLOBAL_FILTER_DEF_NUM_FILTERS);
  for ($block_number = 1; $block_number <= $num_filter_blocks; $block_number++) {
    $filter_names = array();
    foreach ($filters = global_filter_get_filters_for_block($block_number) as $filter) {
      if (!empty($filter['name'])) {
        $filter_names[] = $filter['name'];
      }
    }
    if (empty($filter_names)) {
      $info = t('Global filter block @i (not configured)', array(
        '@i' => $block_number,
      ));
    }
    else {
      $info = format_plural(count($filter_names), 'Global filter @filters', 'Global filters: @filters', array(
        '@filters' => implode(' + ', $filter_names),
      ));
    }
    $blocks[GLOBAL_FILTER_BLOCK_ID_PREFIX . $block_number] = array(
      'info' => $info,
      'cache' => DRUPAL_NO_CACHE,
    );
  }

  // For the case that the number of blocks is reduced, remove the filters as
  // without a block they have no home.
  while ($block_number <= 10) {
    foreach (global_filter_get_filters_for_block($block_number) as $key => $filter) {
      if (!empty($filter['name'])) {
        global_filter_remove_default_filter_from_views($filter['name']);
      }

      // Delete the filter.
      global_filter_set_parameter($key, NULL, NULL);
    }
    $block_number++;
  }
  return $blocks;
}