function EntityFormWizardBase::customizeForm
Same name in other branches
- 4.0.x src/Wizard/EntityFormWizardBase.php \Drupal\ctools\Wizard\EntityFormWizardBase::customizeForm()
Helper function for generating label and id form elements.
Parameters
array $form:
\Drupal\Core\Form\FormStateInterface $form_state:
Return value
array
Overrides FormWizardBase::customizeForm
File
-
src/
Wizard/ EntityFormWizardBase.php, line 130
Class
- EntityFormWizardBase
- The base class for all entity form wizards.
Namespace
Drupal\ctools\WizardCode
protected function customizeForm(array $form, FormStateInterface $form_state) {
$form = parent::customizeForm($form, $form_state);
if ($this->machine_name) {
$entity = $this->entityTypeManager
->getStorage($this->getEntityType())
->load($this->machine_name);
}
else {
$entity = NULL;
}
$cached_values = $form_state->getTemporaryValue('wizard');
// If the entity already exists, allow for non-linear step interaction.
if ($entity) {
// Setup the step rendering theme element.
$prefix = [
'#theme' => [
'ctools_wizard_trail_links',
],
'#wizard' => $this,
'#cached_values' => $cached_values,
];
$form['#prefix'] = \Drupal::service('renderer')->render($prefix);
}
// Get the current form operation.
$operation = $this->getOperation($cached_values);
$operations = $this->getOperations($cached_values);
$default_operation = reset($operations);
if ($operation['form'] == $default_operation['form']) {
// Get the plugin definition of this entity.
$definition = $this->entityTypeManager
->getDefinition($this->getEntityType());
// Create id and label form elements.
$form['name'] = [
'#type' => 'fieldset',
'#attributes' => [
'class' => [
'fieldset-no-legend',
],
],
'#title' => $this->getWizardLabel(),
];
$form['name']['label'] = [
'#type' => 'textfield',
'#title' => $this->getMachineLabel(),
'#required' => TRUE,
'#size' => 32,
'#default_value' => !empty($cached_values['label']) ? $cached_values['label'] : '',
'#maxlength' => 255,
'#disabled' => !empty($cached_values['label']),
];
$form['name']['id'] = [
'#type' => 'machine_name',
'#maxlength' => 128,
'#machine_name' => [
'source' => [
'name',
'label',
],
'exists' => $this->exists(),
],
'#description' => $this->t('A unique machine-readable name for this @entity_type. It must only contain lowercase letters, numbers, and underscores.', [
'@entity_type' => $definition->getLabel(),
]),
'#default_value' => !empty($cached_values['id']) ? $cached_values['id'] : '',
'#disabled' => !empty($cached_values['id']),
];
}
return $form;
}