Использование пользовательского шаблона ветки в пользовательском блоке Drupal8 - PullRequest
0 голосов
/ 22 сентября 2018

Я очень новичок в Drupal и начал изучать Drupal8. Может кто-нибудь, пожалуйста, предоставьте мне пример использования пользовательского шаблона ветки в пользовательском блоке Drupal8.

1 Ответ

0 голосов
/ 22 сентября 2018

Выполните следующие шаги:

Создайте свой пользовательский файл .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>

Удачи!

...