使用 hook,我们可以修改区块,可以是核心自带的区块,或者其它模块里面定义的区块。 比如我想在所有的区块元素上面添加一个 css 类 .. 可以使用 hook_block_view_alter 这个 hook ..
在我们自己定义的模块里面,打开它的 .module 文件 .. 在这里可以去实施一下想要使用的 hook .. 定义一个函数 .. 名字可以先用模块的名字,我这里就是 ninghao_demo .. 然后是 hook 的名字 .. block_view_alter .. 它里面有两个参数 .. 一个是用引用方式传递过来的 build .. 它是一个数组 .. 还有一个参数是 block .. 它属于 \Drupal\Core\Block\BlockPluginInterface 这个接口 ..
在这个函数里面,我们可以去做一些判断来决定要修改的区块是哪些 .. 它的 block 参数里面就是区块的相关信息 .. 这里我想在所有的区块上面添加一个 css 类 .. 可以这样 .. $build .. 设置一下它的 #attributes ,里面的 class ... 在这个数组里面添加一个新的项目 .. 等号的右边就是项目的值 .. 也就是我们要添加的 css 类 ..
比如我想添加一个叫 item 的 css 类 .. 保存一下 .. 再去重建一下 Drupal 的缓存 .. 回到前台页面 .. 刷新 .. 检查一下页面 .. 选中一个区块 .. 找到这个区块的包装元素 .. 你会看到它上面会有一个名字是 item 的 css 类 ...