Рейтинг:0

Как предоставить GraphQL настраиваемые поля веб-формы?

флаг cn

я хотел бы использовать https://www.drupal.org/project/captcha с веб-формами. Для демонстрации веб-форм через GraphQL я использую https://github.com/duartegarin/graphql_webform.

Поскольку CAPTCHA не является стандартным полем https://github.com/duartegarin/graphql_webform не раскрывает его через GraphQL. Поскольку я не нашел никакой документации о том, как предоставить GraphQL настраиваемые поля веб-формы, я решил спросить об этом здесь.

Спасибо.

флаг cn
Поскольку ваш вопрос относится к модулю, которого нет на drupal.org, я бы вместо этого задал вопрос в очереди модуля: https://github.com/duartegarin/graphql_webform/issues
Рейтинг:1
флаг us

Модуль CAPTCHA не реализует компонент веб-формы. Он просто добавляет элемент формы к формам, для которых он был настроен на добавление своей CAPTCHA.

Если модуль CAPTCHA реализует компонент веб-формы, то реализация нескольких классов (начиная с плагина, такого как Веб-формаЭлементТелефон) позволит интегрировать модули вместе.

/**
 * Тип GraphQL для элемента формы текстового поля.
 *
 * @GraphQLType(
 * id = "веб-форма_элемент_телефон",
 * имя = "WebformElementPhone",
 * интерфейсы = {"WebformElementTextBase"},
 * )
 */
класс WebformElementPhone расширяет TypePluginBase {

  /**
   * {@inheritdoc}
   */
  общедоступная функция применяется ($ объект, ResolveContext $ контекст, ResolveInfo $ info) {
    return $object['plugin'] экземпляр телефона;
  }

}
HennyKo avatar
флаг cn
Спасибо, я написал WebformElementCaptcha, возвращая экземпляр Drupal\webform\Plugin\WebformElement\Captcha. Но я не могу получить доступ ни к каким полям Captcha. Я также попытался создать новый интерфейс. Но пример WebformElementTextBase пустой, поэтому я не знаю, как выставить значения.
HennyKo avatar
флаг cn
Хорошо, я думаю, мне нужно написать собственный WebformElement. Но я не понимаю структуру $value. `json_encode($value)` — хорошее возвращаемое значение в resolveValues ​​​​для отладки. (Но похоже сам захват не возвращается, только заголовок, описание и какой тип капчи используется).
apaderno avatar
флаг us
Первым шагом является реализация компонента веб-формы для CAPTCHA, затем GraphQLType для этого компонента веб-формы. Это не простая задача, и она требует понимания того, какова цель всех классов.

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

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