Drupal 8 模块开发:添加自定义区块

之前我们已经按照《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)

区块定义完成之后,清除缓存,然后便可进入区块布局页面进行分配使用。

Drupal 8模块开发 添加区块

看完了?还不过瘾?点此向作者提问
打赏一下,鼓励Ta创作更多好内容!