Dodanie bloku do modułu w Drupalu 8

Pokażę jak programowo dodać blok w module. Więcej na temat podstaw tworzenia modułu w Drupalu 8. Dziś będziemy rozbudowywać poprzedni moduł.

Zabierzmy się za dodanie bloku w module. Najpierw musimy stworzyć nowy plugin dla modułu. Pluginy są nowością w Drupalu 8 i zapewniają wymienne elementy funkcjonalności. Utwórz nowy katalog o nazwie Plugin w katalogu src naszego modułu. Tutaj możesz przechowywać wszystkie swoje wtyczki dla tego modułu. Następnie utwórz folder o nazwie Block. Blok jest typem wtyczki. W folderze Block utwórz plik o nazwie HelloBlock.php o poniższej treści.
<?php

namespace Drupal\first_module\Plugin\Block;
use Drupal\Core\Block\BlockBase;

class HelloBlock extends BlockBase {

}
Kolejną nową koncepcją w Drupalu, której musimy użyć w przypadku bloku, są Adnotacje (Ci co mieli do czynienia z Symfony 4 zapewne wiedzą o co chodzi). Aby Drupal mógł znaleźć Twój kod blokowy, musisz zaimplementować komentarz do kodu w określony sposób, zwany Adnotacją. Dodaj komentarz do klasy tak jak na listingu poniżej.
namespace Drupal\first_module\Plugin\Block;
use Drupal\Core\Block\BlockBase;

/**
 * Provides a 'Hello' Block
 *
 * @Block(
 *   id = "hello_block",
 *   admin_label = @Translation("Hello block"),
 * )
 */
class HelloBlock extends BlockBase {

}
Następnie musimy odziedziczyć komentarze po klase bazowej oraz dodać metodę build, która zwróci zawartość bloku.
class HelloBlock extends BlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() {
    return array(
      '#markup' => $this->t('Hello, World!'),
    );
  }
}
Teraz musisz wyczyścić pamięć podręczną. Aby dodać blok do regionu, przejdź do strony administratora bloków.