Puncte:0

Cum să expun câmpurile personalizate de formulare web la GraphQL?

drapel cn

Aș dori să folosesc https://www.drupal.org/project/captcha cu Webforms. Pentru expunerea formularelor web prin GraphQL folosesc https://github.com/duartegarin/graphql_webform.

Deoarece CAPTCHA nu este un câmp standard https://github.com/duartegarin/graphql_webform nu îl expune prin GraphQL. Deoarece nu am găsit nicio documentație despre cum să expun câmpurile personalizate de formulare web la GraphQL, m-am gândit să întreb despre asta aici.

Mulțumesc.

drapel cn
Deoarece întrebarea dvs. este specifică unui modul care nu este pe drupal.org, aș întreba în coada de probleme a modulului: https://github.com/duartegarin/graphql_webform/issues
Puncte:1
drapel us

Modulul CAPTCHA nu implementează o componentă de formular web. Pur și simplu adaugă un element de formular la formularele pentru care a fost configurat să-și adauge CAPTCHA.

Dacă modulul CAPTCHA a implementat o componentă de formular web, atunci implementând câteva clase (începând de la un plugin precum WebformElementPhone) ar permite integrarea modulelor împreună.

/**
 * Un tip GraphQL pentru elementul de formular textfield.
 *
 * @GraphQLType(
 * id = "webform_element_phone",
 * nume = "WebformElementPhone",
 * interfețe = {"WebformElementTextBase"},
 * )
 */
clasa WebformElementPhone extinde TypePluginBase {

  /**
   * {@inheritdoc}
   */
  se aplică funcția publică ($obiect, ResolveContext $context, ResolveInfo $info) {
    returnează $object['plugin'] instanță de Telefon;
  }

}
HennyKo avatar
drapel cn
Mulțumesc, am scris un WebformElementCaptcha, returnând o instanță a Drupal\webform\Plugin\WebformElement\Captcha. Dar nu pot accesa niciun câmp al Captcha. De asemenea, am încercat să creez o interfață nouă. Dar exemplul WebformElementTextBase este gol, așa că nu știu cum să expun valorile.
HennyKo avatar
drapel cn
Bine, cred că trebuie să scriu un WebformElement personalizat. Dar nu înțeleg structura lui $value. `json_encode($value)` este o valoare de returnare bună în resolveValues ​​pentru depanare. (Dar se pare că captura în sine nu este returnată, ci doar titlul, descrierea și ce tip de captcha este folosit).
apaderno avatar
drapel us
Primul pas este implementarea unei componente de formular web pentru CAPTCHA, apoi un „GraphQLType” pentru acea componentă de formular web. Nu este o sarcină simplă și necesită să înțelegem care este scopul tuturor cursurilor.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.