Drupal 7では、フィールドセットを折りたたみ可能にするかどうか、およびこのフォーム要素のデフォルト状態(折りたたみ、または折りたたみなし)を制限するオプション)がありました。例:
$form['contact_data'] = array(
'#title' => t("Contact data"),
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
今、Drupal 8では、属性を見つけることができません#collapsible
および#collapsed
in Drupal\Core\Render\Element\Fieldset
。 Fieldset要素の公式ドキュメントでは、Fieldset要素の代わりとなる新しい要素については言及されていません。
またありません フォームAPI要素の概要 for Drupal 8、for Drupal 7.など。すべて手動で検索する必要があります。要素定義をコードでレンダリングします。これには時間がかかります(特に、要素の概要を表示して比較したい場合)。
すべての折りたたみ可能なフィールドセットは、HTML5の詳細要素に置き換えられました。
フィールドセットとレガンドはスタイルを設定するのが非常に難しいため、Drupal 8との併用はお勧めしません。代わりに、HTML5の詳細タグと概要タグである、よりクロスブラウザーの方法に置き換えます。
'#type' => 'details'
https://www.drupal.org/node/185202
Drupal 7
$form['advanced'] = array(
'#type' => 'fieldset',
'#title' => t('Advanced settings'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#description' => t('Lorem ipsum.'),
);
Drupal 8
$form['advanced'] = array(
'#type' => 'details',
'#title' => t('Advanced settings'),
'#description' => t('Lorem ipsum.'),
'#open' => TRUE, // Controls the HTML5 'open' attribute. Defaults to FALSE.
);
HereDoc表記を使用してHTMLの説明を格納する例:
$desc_html = <<<HTML
<p>
<strong>Put the HTML to be displayed when open in here.</strong>
<p>
HTML;
$form['advanced'] = array(
'#type' => 'details',
'#title' => t('Advanced settings'),
'#description' => t($desc_html),
'#open' => TRUE, // Controls the HTML5 'open' attribute. Defaults to FALSE.
);