public function ConfigTestForm::form in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/config/tests/config_test/src/ConfigTestForm.php \Drupal\config_test\ConfigTestForm::form()
Gets the actual form array to be built.
Overrides EntityForm::form
See also
\Drupal\Core\Entity\EntityForm::processForm()
\Drupal\Core\Entity\EntityForm::afterBuild()
File
- core/
modules/ config/ tests/ config_test/ src/ ConfigTestForm.php, line 50 - Contains \Drupal\config_test\ConfigTestForm.
Class
- ConfigTestForm
- Form controller for the test config edit forms.
Namespace
Drupal\config_testCode
public function form(array $form, FormStateInterface $form_state) {
$form = parent::form($form, $form_state);
$entity = $this->entity;
$form['label'] = array(
'#type' => 'textfield',
'#title' => 'Label',
'#default_value' => $entity
->label(),
'#required' => TRUE,
);
$form['id'] = array(
'#type' => 'machine_name',
'#default_value' => $entity
->id(),
'#required' => TRUE,
'#machine_name' => array(
'exists' => [
$this,
'exists',
],
'replace_pattern' => '[^a-z0-9_.]+',
),
);
$form['weight'] = array(
'#type' => 'weight',
'#title' => 'Weight',
'#default_value' => $entity
->get('weight'),
);
$form['style'] = array(
'#type' => 'select',
'#title' => 'Image style',
'#options' => array(),
'#default_value' => $entity
->get('style'),
'#access' => FALSE,
);
if ($this->moduleHandler
->moduleExists('image')) {
$form['style']['#access'] = TRUE;
$form['style']['#options'] = image_style_options();
}
// The main premise of entity forms is that we get to work with an entity
// object at all times instead of checking submitted values from the form
// state.
$size = $entity
->get('size');
$form['size_wrapper'] = array(
'#type' => 'container',
'#attributes' => array(
'id' => 'size-wrapper',
),
);
$form['size_wrapper']['size'] = array(
'#type' => 'select',
'#title' => 'Size',
'#options' => array(
'custom' => 'Custom',
),
'#empty_option' => '- None -',
'#default_value' => $size,
'#ajax' => array(
'callback' => '::updateSize',
'wrapper' => 'size-wrapper',
),
);
$form['size_wrapper']['size_submit'] = array(
'#type' => 'submit',
'#value' => t('Change size'),
'#attributes' => array(
'class' => array(
'js-hide',
),
),
'#submit' => array(
array(
get_class($this),
'changeSize',
),
),
);
$form['size_wrapper']['size_value'] = array(
'#type' => 'select',
'#title' => 'Custom size value',
'#options' => array(
'small' => 'Small',
'medium' => 'Medium',
'large' => 'Large',
),
'#default_value' => $entity
->get('size_value'),
'#access' => !empty($size),
);
$form['langcode'] = array(
'#type' => 'language_select',
'#title' => t('Language'),
'#languages' => LanguageInterface::STATE_ALL,
'#default_value' => $entity
->language()
->getId(),
);
$form['actions'] = array(
'#type' => 'actions',
);
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => 'Save',
);
$form['actions']['delete'] = array(
'#type' => 'submit',
'#value' => 'Delete',
);
return $form;
}