Пользовательский модуль Drupal 8 - пользовательский заголовок - PullRequest
0 голосов
/ 10 октября 2019

Я создал пользовательский модуль в Drupal 8. Я хочу, чтобы пользовательский модуль отображал пользовательский заголовок вместо стандартного заголовка, показанного на всех других страницах.

Я создал собственный шаблон веточки, используя документацию, найденную здесь: https://www.drupal.org/docs/8/theming/twig/create-custom-twig-templates-for-custom-module. Я также использовал это в качестве справки: https://www.drupal.org/forum/support/module-development-and-code-questions/2017-05-15/drupal-8-custom-module-template.

Мне удалось создатьшаблон, однако шаблон, кажется, вызывается и отображается после шаблона верхнего колонтитула и перед шаблоном нижнего колонтитула. Так что с документацией я не могу что-либо изменить в файле заголовка.

Есть идеи, как мне создать собственный файл ветки для заголовка для моего пользовательского модуля? Вот фрагменты моего кода ниже:

файл модуля:

function calendar_theme($existing, $type, $theme, $path) {
    return array(
        'calendar_display' => array(
            'variables' => array('test' => NULL),
            'template' => 'calendar-template',
        ),
    );
}

В моем файле контроллера:

namespace Drupal\calendar\Controller;


class CivilCController {

    public function calendar(){

        $content[] = [
            //stuff here
        ];

        $content[] = [
            //stuff here
        ];

        return [
            '#theme' => 'calendar_display',
            '#test' => $content,
        ];

    }

}

Теперь у меня есть файл ветки с именем calendar-template.html.twig,Однако этот файл отображается ниже заголовка.

1 Ответ

0 голосов
/ 11 октября 2019

В вашей теме у вас должен быть регион с названием «заголовок», а внутри него вы должны поместить блоки, предоставляющие контент этому региону. Для каждого блока вы можете определить (в настройках блока), на каких страницах он должен появляться, а на каких нет.

Для еще более сложного варианта использования вы можете использовать модуль Context :

Вам не нужен пользовательский модуль для этой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...