Прикрепить шаблон ветки к блоку в Drupal 8
Я создал модуль, который создает пользовательский блок:
<?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",
);
}
}
?>
Название модуля - "подзаголовок"
В моем subheader.module я хочу подключить определенный шаблон:
<?php
/**
* Implements hook_theme().
*/
function subheader_theme() {
return array(
'slssubheader' => array(
'variables' => array('pierre' => NULL),
'template' => 'specifictemplate',
),
);
}
Я испробовал все виды соглашений об именах для имени функции и ключа массива, но всегда безуспешно. Он никогда не подключает шаблон к specifictemplate.html.twig
У кого-нибудь есть идея?
Спасибо LOOOOTTT
пьер
1 ответ
У меня была такая же проблема, хотя, вероятно, другая причина. Google приведет меня к вашему вопросу, хотя. Проблема с вашим кодом заключается в том, что в вашем методе сборки отсутствует ключ #theme:
public function build() {
return array(
'#title' => "test",
'#theme' => 'slssubheader' // this one
);
}
В моем случае мне пришлось искать пару часов, прежде чем я узнал, что я случайно добавил пользовательское пространство имен в мой файл.module. Друпалу это не нравится и я не узнал ни одного из моих хуков.