public function EntityField::submitConfigurationForm in Entity Field Condition 2.0.x
Form submission handler.
Parameters
array $form: An associative array containing the structure of the plugin form as built by static::buildConfigurationForm().
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form. Calling code should pass on a subform state created through \Drupal\Core\Form\SubformState::createForSubform().
Overrides ConditionPluginBase::submitConfigurationForm
File
- src/
Plugin/ Condition/ EntityField.php, line 389
Class
- EntityField
- Define the entity field condition base class.
Namespace
Drupal\entity_field_condition\Plugin\ConditionCode
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) : void {
parent::submitConfigurationForm($form, $form_state);
$values = $form_state
->cleanValues()
->getValues();
if (!isset($values['entity']['bundle']) || empty($values['entity']['bundle'])) {
$values = [];
}
if ($compare_type_id = $form_state
->getValue([
'entity',
'compare_type',
])) {
try {
/** @var \Drupal\entity_field_condition\Plugin\EntityFieldCondition\CompareType\EntityFieldCompareTypePluginBase $instance */
$instance = $this->entityFieldCompareTypeManager
->createInstance($compare_type_id, $this
->getCompareTypeConfigurations());
$parents = $form['#parents'] ?? [];
if ($instance instanceof EntityFieldCompareTypeInterface) {
$subform_parents = [
'entity',
'compare_configuration',
];
$subform = [
'#parents' => array_merge($parents, $subform_parents),
];
$instance
->submitConfigurationForm($subform, SubformState::createForSubform($subform, $form, $form_state));
NestedArray::setValue($values, $subform_parents, $instance
->getConfiguration());
}
} catch (\RuntimeException $exception) {
watchdog_exception('entity_field_condition', $exception);
}
}
$this
->setConfiguration($values);
}