public function FlexiformFormEntityProvided::configurationForm in Flexiform 8
Prepare a configuration form.
Overrides FlexiformFormEntityBase::configurationForm
1 call to FlexiformFormEntityProvided::configurationForm()
- FlexiformFormEntityLoad::configurationForm in src/
Plugin/ FlexiformFormEntity/ FlexiformFormEntityLoad.php - Prepare a configuration form.
1 method overrides FlexiformFormEntityProvided::configurationForm()
- FlexiformFormEntityLoad::configurationForm in src/
Plugin/ FlexiformFormEntity/ FlexiformFormEntityLoad.php - Prepare a configuration form.
File
- src/
Plugin/ FlexiformFormEntity/ FlexiformFormEntityProvided.php, line 107
Class
- FlexiformFormEntityProvided
- Form Entity plugin.
Namespace
Drupal\flexiform\Plugin\FlexiformFormEntityCode
public function configurationForm(array $form, FormStateInterface $form_state) {
$form = parent::configurationForm($form, $form_state);
$entity_type_options = $bundle_options = [];
foreach ($this->entityTypeManager
->getDefinitions() as $id => $entity_type) {
if ($entity_type
->isSubclassOf('\\Drupal\\Core\\Entity\\FieldableEntityInterface')) {
$entity_type_options[$id] = $entity_type
->getLabel();
}
}
$form['entity_type'] = [
'#type' => 'select',
'#options' => $entity_type_options,
'#title' => $this
->t('Entity Type'),
'#description' => $this
->t('The entity type.'),
'#default_value' => !empty($this->configuration['entity_type']) ? $this->configuration['entity_type'] : '',
'#ajax' => [
'wrapper' => 'bundle-select-wrapper',
'callback' => [
$this,
'ajaxBundleElementCallback',
],
],
];
$entity_type_id = $form['entity_type']['#default_value'];
if ($form_state
->getValue('bundle')) {
$entity_type_id = $form_state
->getValue('bundle');
}
if ($input = $form_state
->getUserInput()) {
$entity_type_id = $input['configuration']['entity_type'] ?: NULL;
}
if (!empty($entity_type_id)) {
foreach ($this->entityBundleInfo
->getBundleInfo($entity_type_id) as $bundle => $info) {
$bundle_options[$bundle] = $info['label'];
}
}
$form['bundle'] = [
'#prefix' => '<div id="bundle-select-wrapper">',
'#suffix' => '</div>',
'#type' => 'select',
'#options' => $bundle_options,
'#title' => $this
->t('Bundle'),
'#description' => $this
->t('The bundle.'),
'#default_value' => !empty($this->configuration['bundle']) ? $this->configuration['bundle'] : '',
];
return $form;
}