protected function CommerceBundleEntityFormBase::validateTraitForm in Commerce Core 8.2
Validates the trait form.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
5 calls to CommerceBundleEntityFormBase::validateTraitForm()
- OrderItemTypeForm::validateForm in modules/
order/ src/ Form/ OrderItemTypeForm.php - Form validation handler.
- OrderTypeForm::validateForm in modules/
order/ src/ Form/ OrderTypeForm.php - Form validation handler.
- ProductTypeForm::validateForm in modules/
product/ src/ Form/ ProductTypeForm.php - Form validation handler.
- ProductVariationTypeForm::validateForm in modules/
product/ src/ Form/ ProductVariationTypeForm.php - Form validation handler.
- StoreTypeForm::validateForm in modules/
store/ src/ Form/ StoreTypeForm.php - Form validation handler.
File
- src/
Form/ CommerceBundleEntityFormBase.php, line 101
Class
Namespace
Drupal\commerce\FormCode
protected function validateTraitForm(array &$form, FormStateInterface $form_state) {
$traits = array_filter($form_state
->getValue('traits'));
$disabled_traits = $form_state
->getValue('disabled_traits');
$traits = array_unique(array_merge($disabled_traits, $traits));
$original_traits = $form_state
->getValue('original_traits');
$installed_traits = [];
foreach ($original_traits as $trait_id) {
$installed_traits[$trait_id] = $this->traitManager
->createInstance($trait_id);
}
$selected_traits = array_diff($traits, $original_traits);
foreach ($selected_traits as $trait_id) {
$trait = $this->traitManager
->createInstance($trait_id);
$conflicts = $this->traitManager
->detectConflicts($trait, $installed_traits);
if ($conflicts) {
$conflicts = array_map(function ($trait) {
return $trait
->getLabel();
}, $conflicts);
$form_state
->setError($form['traits'], $this
->t('The @trait trait is in conflict with the following traits: @conflict.', [
'@trait' => $trait
->getLabel(),
'@conflict' => implode(', ', $conflicts),
]));
break;
}
}
}