Drupal 8連絡フォームから this answer 、 this answer そしてさらに- このモジュール しかし、どれも私にとってはうまくいきません。
基本的に、「このサイトの利用規約に同意します」というテキストを表示するチェックボックスを表示したいだけであり、「利用規約」という言葉をサイトのそれぞれのページにリンクする必要があります。新しいタブ。
Drupal 8でコードまたはモジュールを介してこれを実現する方法についてのアイデアは、非常に高く評価されています
これは.themeファイルで使用してみたコードです
function <theme_name>_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'field_config_edit_form':
$form['default_value']['widget'][1] = array(
'#type' => 'checkbox',
'#title' => t('Your checkbox'),
'#size' => 10,
'#maxlength' => 255,
'#default_value' => 1,
'#required' => TRUE,
'#description' => '<p>' . t('Your checkbox altered.') . '</p>',
);
break;
}
}
そして、私はこれをサイトのすべてのお問い合わせフォームで行う必要があります
あなたのコードはD7でした チェックボックス が#size
と#maxlength
で何をすべきか? :)
この答えは、あなたが Devel サブモジュールKintをインストールしていることを前提としています。
/**
* Implements hook_form_alter().
*/
function THEME_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
ksm($form_id); // Remove when done.
if ($form_id == 'MY_FORM_ID') {
$form['tos'] = [
'#type' => 'checkbox',
'#title' => t('Terms and Conditions'),
'#required' => TRUE,
'#default_value' => TRUE,
];
}
}
これをチェックしてください フォームAPIの概要 。