@pingvin156

Как вставить форму регистрации drupal8 внутрь своего блока?

Мой блок состоит из 3 вкладок. Одна из них - регистрация. Как форму регистрации отобразить там?
Спасибо!
  • Вопрос задан
  • 222 просмотра
Решения вопроса 2
afi13
@afi13
Вы можете либо получить login-форму из formBuilder в build() методе вашего блока, передать ее в шаблон и отрендерить где Вам надо. Для примера можете посмотреть Drupal\user\Plugin\Block\UserLoginBlock.

Или же просто отрендерить 'user_login_block' внутри вашего блока, например так:
$block_manager = \Drupal::service('plugin.manager.block');
$config = [];
$plugin_block = $block_manager->createInstance('system_breadcrumb_block', $config);
$access_result = $plugin_block->access(\Drupal::currentUser());
if (is_object($access_result) && $access_result->isForbidden() || is_bool($access_result) && !$access_result) {
  return [];
}
$render = $plugin_block->build();
return $render;

https://drupal.stackexchange.com/questions/171686/...
Только лучше используйте DI вместо вызова класса \Drupal
Ответ написан
@pingvin156 Автор вопроса
Вдруг кому понадобится:
$entity = \Drupal::entityTypeManager()->getStorage('user')->create(array());
      $formObject = \Drupal::entityTypeManager()
          ->getFormObject('user', 'register')
          ->setEntity($entity);
      $form = \Drupal::formBuilder()->getForm($formObject);
      $txtblockReg = \Drupal::service('renderer')->render($form);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы