Drupal 8自定义块(模块)Twig模板文件内容未显示

时间:2019-10-11 11:53:35

标签: twig drupal-8

我创建了一个自定义模块并分配了一个树枝模板文件,但未显示。 下面是文件和文件夹结构

Folder structure

1。workbuster.module文件的代码如下

timer.schedule(TimeUnit.MINUTES.toMillis(5)) {
    refreshImages(knownPosts, knownFiles, httpClient)
}

2。 WorkbusterBlock文件的代码如下

<?php

/**
 * Implements hook_theme().
 */
function workbuster_theme()
{
    return array(
    'block_workbuster' => array(
            'variables' => array('title' => NULL, 'description' => NULL),
            'template' => 'block--workbuster-custom',
        ),
    );
}

3。 block--workbuster-custom.html.twig文件的代码如下

<?php

/**
 * @file
 */
namespace Drupal\workbuster\Plugin\Block;

use Drupal\Core\Block\BlockBase;

/**
 * Provides a 'Workbuster' Block
 * @Block(
 * id = "block_workbuster",
 * admin_label = @Translation("Workbuster block"),
 * )
 */
class WorkbusterBlock extends BlockBase {

    /**
     * {@inheritdoc}
     */
    public function build() {

        return array(
            '#title' => 'Workbuster',
            '#description' => 'Workbuster'
        );
    }

}

1 个答案:

答案 0 :(得分:2)

尝试:

在WorkbusterBlock.php中,您必须按照以下步骤设置模板:

 public function build() {
        return array(
          '#theme' => 'block__workbuster_custom',
          '#title' => 'Workbuster',
          '#description' => 'Workbuster'
        );
    }

在您的.module中,使用模板作为密钥:

function workbuster_theme()
{
    return array(
      'block__workbuster_custom' => array(
          'variables' => array('title' => NULL, 'description' => NULL),
        ),
    );
}

注意:我在模板名称中用下划线(_)替换了连字符(-)