Создать блок программно на Drupal 8 | Разработка и сопровождение сайтов в Краснодаре
Опубликовано: 27.05.2017
Модуль в Drupal 8
Для программного создания блока, нам понадобится модуль, который будет отвечать за вывод и настройку этого блока.
9.7. Блок с youtube видео Drupal 8
Первое с чего стоит начать - создать описание модуля: файл block_example.info.yml, в котором будет информация о нашем модуле:
name: Block example type: module description: 'Create blocks.' package: Dribbit examples core: 8.x dependencies: - blockНу и естественно файл block_example.module, в котором мы напишем:
/** * @file * Currently (24/08/2017), Drupal needs this blank file. */Теперь можно приступить к созданию самого блока:
Установка CMS Drupal (1/21)
Блок в Drupal 8
В Drupal 8 блоки практически преобразовались в плагины. Теперь они представляют собой функциональные элементы, которые можно использовать в разных местах.
Создадим простой тип блока, который выводит на экран по умолчанию "Привет, Мир!". Все, что нам понадобится - это один файл классов, расположенный в папке src/Plugin/Block корневой директории нашего модуля (путь обязательный!).
Давайте назовем наш новый тип блока BlockExampleSimpleBlock, и, естественно, он должен будет содержаться в файле с именем BlockExampleSimpleBlock.php. В этот файл мы для начала можем добавить следующее:
<?php /** * @file * Contains \Drupal\block_example\Plugin\Block\BlockExampleSimpleBlock. */ namespace Drupal\block_example\Plugin\Block; use Drupal\block\BlockBase; use Drupal\Component\Annotation\Plugin; use Drupal\Core\Annotation\Translation; use Drupal\Core\Session\AccountInterface; /** * Provides a 'Example: empty block' block. * * @Block( * id = "example_simple", * subject = @Translation("Simple example block"), * admin_label = @Translation("Simple example block") * ) */ class BlockExampleSimpleBlock extends BlockBase { /** * Implements \Drupal\block\BlockBase::blockBuild(). */ public function build() { return array( '#markup' => t('Привет, Мир!'), ); } }Как и для любого другого файла классов, мы начинаем с определения области имен нашего класса. После этого используем класс BlockBase, так чтобы мы могли расширить его. Затем следует то, с чем вы определенно не встречались в Drupal 7: аннотации.