Главная Новости

Создать блок программно на Drupal 8 | Разработка и сопровождение сайтов в Краснодаре

Опубликовано: 19.10.2017

видео Создать блок программно на Drupal 8 | Разработка и сопровождение сайтов в Краснодаре

Установка Drupal на хостинг + руссификация Drupal 7.26. Установка Drupal 7

Модуль в 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.  */

Теперь можно приступить к созданию самого блока:


Введение в Drupal API. Среда разработки модулей.

Блок в Drupal 8

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

Создадим простой тип блока, который выводит на экран по умолчанию "Привет, Мир!". Все, что нам понадобится - это один файл классов, расположенный в папке src/Plugin/Block корневой директории нашего модуля (путь обязательный!).


установка Drupal на Denwer от cwt.od.ua

Давайте назовем наш новый тип блока 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: аннотации.

Новости

Карта
rss