public function FieldStateBase::buildConfigurationForm in Field States UI 8
Same name and namespace in other branches
- 8.2 src/FieldStateBase.php \Drupal\field_states_ui\FieldStateBase::buildConfigurationForm()
File
- src/
FieldStateBase.php, line 189
Class
- FieldStateBase
- Provides a base class for field staes.
Namespace
Drupal\field_states_uiCode
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$display = $form_state
->getFormObject()
->getEntity();
$fields = [];
$definitions = \Drupal::entityManager()
->getFieldDefinitions($display
->getTargetEntityTypeId(), $display
->getTargetBundle());
$current_field = $form_state
->get('field_states_ui_edit');
foreach ($display
->getComponents() as $name => $field) {
if (!isset($definitions[$name]) || $name === $current_field) {
continue;
}
$fields[$name] = $definitions[$name]
->getLabel();
}
asort($fields, SORT_NATURAL | SORT_FLAG_CASE);
$form['target'] = [
'#type' => 'select',
'#title' => t('Target'),
'#description' => t('The field to run a comparison on'),
'#required' => TRUE,
'#other' => t('Other element on the page'),
'#other_description' => t('Should be a valid jQuery style element selector.'),
'#options' => $fields,
'#default_value' => isset($this->configuration['target']) ? $this->configuration['target'] : '',
];
$form['comparison'] = [
'#type' => 'select',
'#title' => t('Comparison Type'),
'#options' => [
'empty' => 'empty',
'filled' => 'filled',
'checked' => 'checked',
'unchecked' => 'unchecked',
'expanded' => 'expanded',
'collapsed' => 'collapsed',
'value' => 'value',
],
'#default_value' => isset($this->configuration['comparison']) ? $this->configuration['comparison'] : '',
];
$form['value'] = [
'#type' => 'textfield',
'#title' => t('Value'),
'#default_value' => isset($this->configuration['value']) ? $this->configuration['value'] : '',
'#states' => [
'visible' => [
'select[name$="[comparison]"]' => [
'value' => 'value',
],
],
],
];
return $form;
}