Создание поля типа Друпал хостинг
Блоки в Drupal 8 являются экземплярами блока модуля.
Менеджер блока Drupal сканирует ваши модули для любых классов, которые содержат @Block аннотацию.
Пример ниже фрагмент кода использует аннотацию @Block наряду со свойствами «ид» и «admin_label», чтобы определить пользовательский блок.
Создайте файл Src / Plugin / Block / HelloBlock.php в модуле скелета, созданного ранее и добавить код, приведенный ниже. Вы, конечно, нужно перестраивать кэш.
Для того, чтобы добавить «Hello блок» вы можете перейти к структуре -> Блок Layout (админ / структура / блок) и нажмите на кнопку «Place» Блока, связанные с каждой доступной области.
При нажатии на кнопку «Place Блока» для любого данного региона появится «Place Block» диалог всплывающий, с перечнем всех доступных блоков. Чтобы быстро найти свой блок, просто используйте «Фильтр по имени блока» вариант или использовать мышь прокрутку, чтобы найти «Hello блока». Таким образом, вы можете добавить любое количество экземпляров пользовательского блока в любом месте на вашем сайте.
Исправление проблем
Имя класса и имя файла должно быть таким же (класс HelloBlock и /src/Plugin/Block/HelloBlock.php). Если имя класса отличается, то блок будет отображаться в списке доступных блоков, однако вы не сможете добавить его.
Обязательно проверьте все пути и имена файлов. Ваш .php должны быть в правильно меченого каталоге (/ SRC / Plugin / Block /), в противном случае он не будет обнаружен Drupal.
Примечание: Использование шаблонов Twig с пользовательскими блоками
- Добавьте _theme крюк в вашем .module файла. Не называйте функцию тематизации, как «block__. '- это не будет передавать никаких переменных вниз к шаблонам прута. Вместо этого, вы можете использовать имя модуля в качестве префикса.
- Используйте «#theme» в массиве визуализации в методе построения и передать переменные на том же уровне, как «#theme» - «#varname».