class BlockTestHooks

Hook implementations for block_test.

Hierarchy

Expanded class hierarchy of BlockTestHooks

File

core/modules/block/tests/modules/block_test/src/Hook/BlockTestHooks.php, line 14

Namespace

Drupal\block_test\Hook
View source
class BlockTestHooks {
    
    /**
     * Implements hook_block_alter().
     */
    public function blockAlter(&$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().
     */
    public function blockViewTestCacheAlter(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().
     */
    public function blockBuildTestCacheAlter(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');
        }
    }

}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.