我创建了一个创建自定义块的模块:
<?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
皮尔
答案 0 :(得分:1)
我遇到了同样的问题,尽管可能是另一个原因。谷歌引导我回答你的问题。您的代码的问题是我认为构建方法中缺少#theme键:
public function build() {
return array(
'#title' => "test",
'#theme' => 'slssubheader' // this one
);
}
在我的情况下,我必须搜索几个小时才发现我不小心在我的.module文件中添加了一个自定义命名空间。 Drupal不喜欢这样,也不认识我的任何钩子。