public function SiteSettingEntityTypeForm::form in Site Settings and Labels 8
Gets the actual form array to be built.
Overrides EntityForm::form
See also
\Drupal\Core\Entity\EntityForm::processForm()
\Drupal\Core\Entity\EntityForm::afterBuild()
File
- src/
Form/ SiteSettingEntityTypeForm.php, line 51
Class
- SiteSettingEntityTypeForm
- Class SiteSettingEntityTypeForm.
Namespace
Drupal\site_settings\FormCode
public function form(array $form, FormStateInterface $form_state) {
$form = parent::form($form, $form_state);
/** @var \Drupal\site_settings\Entity\SiteSettingEntityType $site_setting_entity_type */
$site_setting_entity_type = $this->entity;
$form['label'] = [
'#type' => 'textfield',
'#title' => $this
->t('Label'),
'#maxlength' => 255,
'#default_value' => $site_setting_entity_type
->label(),
'#description' => $this
->t("The label for the particular setting."),
'#required' => TRUE,
];
$fieldsets = $this
->getFieldsets($site_setting_entity_type);
if ($fieldsets) {
array_unshift($fieldsets, $this
->getCreateNewLabel());
$form['existing_fieldset'] = [
'#type' => 'select',
'#title' => $this
->t('Choose existing "Fieldset Legend" label'),
'#options' => array_combine($fieldsets, $fieldsets),
'#default_value' => $site_setting_entity_type->fieldset,
'#description' => $this
->t("The fieldset to group this particular setting in."),
'#required' => TRUE,
'#empty_option' => '-- select one --',
'#empty_value' => '',
];
}
$form['new_fieldset'] = [
'#type' => 'textfield',
'#title' => $this
->t('Create a new "Fieldset Legend" label'),
'#maxlength' => 255,
'#default_value' => $site_setting_entity_type->fieldset,
'#description' => $this
->t("A new fieldset to group this particular setting in."),
'#required' => FALSE,
];
if ($fieldsets) {
$form['new_fieldset']['#states'] = [
'visible' => [
':input[name="existing_fieldset"]' => [
'value' => '-- create new fieldset --',
],
],
'required' => [
':input[name="existing_fieldset"]' => [
'value' => '-- create new fieldset --',
],
],
];
}
$form['fieldset'] = [
'#type' => 'hidden',
'#default_value' => $site_setting_entity_type->fieldset,
];
$form['multiple'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Multiple'),
'#default_value' => $site_setting_entity_type->multiple,
'#description' => $this
->t("Whether or not to allow multiple entries for this same setting."),
];
$form['instructions'] = [
'#markup' => '<p>' . $this
->t('Please be diligent to reuse existing fields via the "Manage Fields" tab when creating new Site Settings to avoid performance issues.') . '</p>',
];
$form['id'] = [
'#type' => 'machine_name',
'#default_value' => $site_setting_entity_type
->id(),
'#machine_name' => [
'exists' => '\\Drupal\\site_settings\\Entity\\SiteSettingEntityType::load',
],
'#disabled' => !$site_setting_entity_type
->isNew(),
];
return $form;
}