web-dev-qa-db-ja.com

キャプチャをウェブフォームに追加

私はdrupal 8プロジェクトに取り組んでいます。webformを作成し、captcha contribモジュールを使用してcaptchaを私のwebformに関連付けようとしています。 Webフォームフィールドをレンダリングします。キャプチャを/ admin/config/people/captcha/captcha-pointsの下でWebフォームに関連付け、匿名ユーザーとしてテストすると、常にキャプチャをWebフォームに関連付けることができません。

  • Webフォームテンプレートファイルでキャプチャを印刷する必要がありますか?もしそうならそれを行う方法?
  • WebフォームフィールドにCaptcha要素を追加する必要がありますか?もしそうなら、その要素はデフォルトでcaptcha contribモジュール設定を使用しますか?

どんな助けでもありがたいです。

[〜#〜]更新[〜#〜]

Webform tamplateをオーバーライドする方法を参照 here

1
MiharbKH

Webフォームをキャプチャーするには、CAPTCHA要素をWebフォームに追加する必要があります。 captcha contribモジュールがサイトで有効になっている場合、利用可能なcaptcha challenge typesをWebフォームごとに使用できます。

テンプレートtwigファイルは、主にデザインのププローズ用です。

フォーム内のキャプチャの配置が好みに合わない場合は、デフォルトのWebフォームテンプレートを/modules/contrib/webform/webform.html.twigからテーマ/themes/custom/MYTHEME/templates/webform--WEBFORM_MACHINE_NAME.html.twigにコピーし、各要素を個別に配置する必要があります。

デフォルトのwebform.html.twig

<form{{ attributes }}>
  {{ title_prefix }}
  {{ children }}
  {{ title_suffix }}
</form>

そして、私たち自身のコピーでは、{{ children }}を取り出して個々の要素で置き換える必要があります。また、フォームIDとアクションが手動で含まれていることを確認する必要があります。最終的なテンプレートは、次のようになります。

<form{{ attributes }}>
  {{ title_prefix }}
  {{ element.elements.first_name }}
  {{ element.elements.last_name }}
  {{ element.elements.captcha }}

  {# necessary elements #}
  {{ element.form_build_id }}
  {{ element.form_id }}
  {{ element.actions }}

  {{ title_suffix }}
</form>

たとえば、captchaはキャプチャフィールドのマシン名です。

2
GiorgosK