You are here

block_test.module in Drupal 10

Provide test blocks.

File

core/modules/block/tests/modules/block_test/block_test.module
View source
<?php

/**
 * @file
 * Provide test blocks.
 */
use Drupal\Core\Block\BlockPluginInterface;
use Drupal\Core\Cache\Cache;

/**
 * Implements hook_block_alter().
 */
function block_test_block_alter(&$block_info) {
  if (\Drupal::state()
    ->get('block_test_info_alter') && isset($block_info['test_block_instantiation'])) {
    $block_info['test_block_instantiation']['category'] = t('Custom category');
  }
}

/**
 * Implements hook_block_view_BASE_BLOCK_ID_alter().
 */
function block_test_block_view_test_cache_alter(array &$build, BlockPluginInterface $block) {
  if (\Drupal::state()
    ->get('block_test_view_alter_suffix') !== NULL) {
    $build['#attributes']['foo'] = 'bar';
  }
  if (\Drupal::state()
    ->get('block_test_view_alter_append_pre_render_prefix') !== NULL) {
    $build['#pre_render'][] = '\\Drupal\\block_test\\BlockRenderAlterContent::preRender';
  }
}

/**
 * Implements hook_block_build_BASE_BLOCK_ID_alter().
 */
function block_test_block_build_test_cache_alter(array &$build, BlockPluginInterface $block) {

  // Test altering cache keys, contexts, tags and max-age.
  if (\Drupal::state()
    ->get('block_test_block_alter_cache_key') !== NULL) {
    $build['#cache']['keys'][] = \Drupal::state()
      ->get('block_test_block_alter_cache_key');
  }
  if (\Drupal::state()
    ->get('block_test_block_alter_cache_context') !== NULL) {
    $build['#cache']['contexts'][] = \Drupal::state()
      ->get('block_test_block_alter_cache_context');
  }
  if (\Drupal::state()
    ->get('block_test_block_alter_cache_tag') !== NULL) {
    $build['#cache']['tags'] = Cache::mergeTags($build['#cache']['tags'], [
      \Drupal::state()
        ->get('block_test_block_alter_cache_tag'),
    ]);
  }
  if (\Drupal::state()
    ->get('block_test_block_alter_cache_max_age') !== NULL) {
    $build['#cache']['max-age'] = \Drupal::state()
      ->get('block_test_block_alter_cache_max_age');
  }

  // Test setting #create_placeholder.
  if (\Drupal::state()
    ->get('block_test_block_alter_create_placeholder') !== NULL) {
    $build['#create_placeholder'] = \Drupal::state()
      ->get('block_test_block_alter_create_placeholder');
  }
}