Рейтинг:1

Зарегистрировать блок формы в модальном режиме

флаг de

Я хочу отобразить форму регистрации в модальном режиме. Для этого я создал собственный блок плагинов, который возвращает рендеринг регистра формы.

/**
 * {@inheritdoc}
 */
общедоступная функция сборки () {
   $entity = \Drupal::entityTypeManager()->getStorage('user')->create(array());
   $formObject = \Drupal::entityTypeManager()
     ->getFormObject('пользователь', 'зарегистрироваться')
     ->setEntity($entity);

   вернуть $this->formBuilder->getForm($formObject);
}

/**
 * {@inheritdoc}
 */
защищенная функция blockAccess(AccountInterface $account) {
  если ($account->isAnonymous()) {
    вернуть AccessResult::allowed()
      ->addCacheContexts(['route.name', 'user.roles:anonymous']);
  }
  вернуть AccessResult::forbidden();
}

Я использую команду ajax для процесса модального рендеринга, и в ней у меня есть этот код:

  // Создаем экземпляр блока.
  $plugin_block = $this->blockManager->createInstance($block_id);
  // Некоторые блоки могут реализовывать проверку доступа.
  $access_result = $plugin_block->access($this->currentUser);
  // Возвращаем пустой массив рендеринга, если у пользователя нет доступа.
  // $access_result может быть логическим значением или классом AccessResult.
  if (is_object($access_result) && $access_result->isForbidden() || is_bool($access_result) && !$access_result) {
    $modal_content = "";
  }
  еще {
    $build_block = $plugin_block->build();
    $modal_content = $this->renderer->render($build_block);
  }

Моя проблема в том, что блок хорошо отображается в модальном виде с формой но форма не работает. И когда я сделал сравнение с обычным рендерингом блока (например, непосредственно в области страницы через макет блока администратора), разница в том, что в модальном рендеринге у меня как action="form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM"

У кого-нибудь есть идея или лучшее решение?

флаг in
похоже, вы пытаетесь отобразить форму внутри формы, что не нравится Drupal. Если модальное окно настроено таким образом, что его разметка отображается в родительской форме, тогда, по сути, модальная форма `

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.