You are here

function block_visibility_vocabulary_block_list_alter in Block Visibility by Vocabularies 7

Implements hook_block_list_alter().

File

./block_visibility_vocabulary.module, line 97

Code

function block_visibility_vocabulary_block_list_alter(&$blocks) {
  $blocks_visibility_settings = block_visibility_vocabulary_settings_get();
  $term = NULL;
  if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
    $term = taxonomy_term_load(arg(2));
  }
  foreach ($blocks as $key => $block) {
    if (!isset($block->theme) || !isset($block->status) || $block->theme != $GLOBALS['theme_key'] || $block->status != 1) {
      continue;
    }
    $setting_key = $block->module . ':' . $block->delta;
    if (!empty($blocks_visibility_settings[$setting_key]) && (!$term || !in_array($term->vid, $blocks_visibility_settings[$setting_key]))) {
      unset($blocks[$key]);
    }
  }
}