Выполните следующие шаги:
Создайте свой пользовательский файл .module, если у вас его нет, и добавьте hook_theme () с определенными именами переменных и именем шаблона Twig.
/**
* Implements hook_theme().
*/
function custom_theme() {
return array(
'custom_block' => array(
'variables' => array('title' => NULL, 'description' => NULL),
'template' => 'block--ws-custom',
),
);
}
Следующим шагом является создание файла блока и размещение кода.Перейдите в папку с пользовательским модулем, откройте / src / Plugin / Block / и создайте файл, например, Custom.php.Включите некоторые основные функции и создайте свой собственный блок.Определите идентификатор для своего блока и метку администратора, чтобы вы могли легко найти его в Структуре -> Макет блока и поместить в регион.
Создайте класс и расширьте BlockBase.Используйте функцию build () и верните массив переменных:
namespace Drupal\custom\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a 'ws custom' block.
*
* @Block(
* id = "custom_block",
* admin_label = @Translation("Custom Block"),
*
* )
*/
class Custom extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
// do something
return array(
'#title' => 'Title',
'#description' => 'Description'
);
}
}
Теперь очистите кеш и перейдите в Structure -> Block layout.Найдите свой блок и поместите его в нужную область.
Следующим шагом будет создание файла Twig и рендеринг переменных.В вашей папке тем откройте тему, которую вы используете, например, wstheme и откройте папку templates / block.Теперь создайте блок файла - custom.html.twig.
Отображение переменных в Twig HTML:
{#
/**
* @file
* Profile custom block.
*/
#}
<div class="custom--block">
<h1>{{ title }}</h1>
<p>{{ description }}</p>
</div>
Удачи!