Прикрепить шаблон ветки к блоку в 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. Друпалу это не нравится и я не узнал ни одного из моих хуков.

Другие вопросы по тегам