用户登录

Block 是区块,我们可以把它放在主题里定义的某个区域上显示内容 .. 在 Drupal 8 里面,Block 可以作为一种插件,在我们的自定义模块里面可以包含一些使用代码定义好的区块。

先找到我们自己创建的这个模块,在它的 src 目录下面创建一个新的目录,名字是 Plugin ,我们可以把模块提供的一些插件放到这个目录的下面,在它的下面再创建一个 Block 目录,这里可以存储区块 .. 每个区块单独放在一个类里面,比如创建一个 NinghaoDemoBlock.php ..

这个文件的名字就是在这个文件里定义的类的名字 .. 创建它的目录结构也要使用这样的形式,也就是 src/Plugin/Block ..

添加一个 php 的开始标记 .. 再用一个 namespace 定义一个命名空间 .. 我这里就是 Drupal\ninghao_demo\Plugin\Block;

区块的类需要继承 Drupal 的 BlockBase .. 这个类实施了 BlockPluginInterface 这个接口 .. 我们先去使用一下这个 BlockBase .. use Drupal\Core\Block\BlockBase;

下面再给这个区块添加一块注释 .. Drupal 会用到这个注释里面的内容来理解这个区块 .. 先输入一个 Provides a 'Demo' Block

中间空一行 .. 再用一个 @Block .. 在括号里面需要再输入一些跟这个区块相关的东西 .. 先是 id .. 它的值就是这个区块的 id 号 .. 逗号分隔一下 .. 另起一行 .. 再输入一个 admin_label .. 它的值是这个区块的管理标题 .. 先用一个 @Translation .. 告诉 Drupal 它里面的字符可以被翻译成多个语言的版本 ..

最后再添加一个 category .. 设置一下这个区块的分类 ... Custom 表示自定义 .. 这个字符也是可被翻译的字符 ..

下面我们再去定义这个区块类 ... 名字是 NinghaoDemoBlock .. 让它继承 BlockBase .. 因为这个 BlockBase 类实施了 BlockPluginInterface 这个接口,所以在这个类里面,我们需要提供 BlockPluginInterface 里面的方法 ..

添加一个公开的方法 .. 名字是 build .. 它可以返回区块的内容 .. 这里直接使用一个可被显示的数组 .. 里面添加一个 #markup 属性 .. 它的值是一个用 t 函数处理的字符串 ..

现在我们就在自己创建的模块里面添加了一个区块插件 .. 这个区块上的内容就是这个 hello ..

保存一下 ... 再去重建一下 Drupal 的缓存 ...

创建区块《 Drupal 8 开发:区块 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点