Lugir 2017-02-20 14:09
之前我们已经按照《Drupal 8 模块开发入门教程》创建了 Hello World 模块,接下来学习如何通过模块添加自定义区块。
在 Drupal 8 中,区块管理器通过扫描所有包含 @Block 注解的类来发现新的区块。
按以下路径创建文件 src/Plugin/Block/HelloWorldBlock.php,并向文件中填写以下内容:
<?php
namespace Drupal\hello_world\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a 'Hello World' Block.
*
* @Block(
* id = "hello_world_block",
* admin_label = @Translation("Hello World block"),
* )
*/
class HelloWorldBlock extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
return array(
'#markup' => 'Hello, World!',
);
}
}
- @Block 注解中的 id, admin_label 分别表示区块的 id 和显示的标题。
- build() 方法返回可渲染的数组内容
注意:扩展的区块类名与文件名必须相同(即 class HelloWorldBlock 与 src/Plugin/Block/HelloWorldBlock.php)
区块定义完成之后,清除缓存,然后便可进入区块布局页面进行分配使用。