将一个树枝模板挂钩到Drupal 8中的一个块

时间:2016-02-10 12:53:57

标签: drupal-8 hook-theme

我创建了一个创建自定义块的模块:

<?php
/**
 * Provides a 'SLS Block' Block
 *
 * @Block(
 *   id = "SLS-Subheader",
 *   admin_label = @Translation("SLS Subheader"),
 * )
 */

namespace Drupal\subheader\Plugin\Block;

use Drupal\Core\Block\BlockBase;

class SubheaderBlock extends BlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() {


    return array(
      '#title' => "test",
    );
  }
}
?>

模块名称为&#34; subheader&#34;

在我的subheader.module中,我想挂钩一个特定的模板:

<?php
/**
 * Implements hook_theme().
*/

function subheader_theme() {
  return array(
    'slssubheader' => array(
      'variables' => array('pierre' => NULL),
      'template' => 'specifictemplate',
    ),
  );
}

我尝试了函数名和数组键的所有类型的命名约定,但总是不成功。它永远不会将模板挂钩到specifictemplate.html.twig

任何人都有想法??

感谢LOOOOTTT

皮尔

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,尽管可能是另一个原因。谷歌引导我回答你的问题。您的代码的问题是我认为构建方法中缺少#theme键:

public function build() {
    return array(
      '#title' => "test",
      '#theme' => 'slssubheader' // this one
    );
}

在我的情况下,我必须搜索几个小时才发现我不小心在我的.module文件中添加了一个自定义命名空间。 Drupal不喜欢这样,也不认识我的任何钩子。