public function ConfigForm::validateForm in Color API 8
Form validation handler.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormBase::validateForm
File
- src/
Form/ ConfigForm.php, line 99
Class
- ConfigForm
- Form definition for the Color API module configuration page.
Namespace
Drupal\colorapi\FormCode
public function validateForm(array &$form, FormStateInterface $form_state) {
if ($this->entityTypeManager
->hasDefinition('colorapi_color') && !$form_state
->getValue('enable_color_entity') && $this->entityTypeManager
->getStorage('colorapi_color')
->hasData()) {
$form_state
->setError($form['enable_color_entity'], $this
->t('You have Color entity data in the database, and must delete the content before you can disable the Color entity type.'));
}
if (!$form_state
->getValue('enable_color_field')) {
$field_info = $this->entityFieldManager
->getFieldMapByFieldType('colorapi_color_field');
$fields = [];
if (count($field_info)) {
foreach (array_keys($field_info) as $entity_type) {
foreach (array_keys($field_info[$entity_type]) as $field_name) {
$fields[] = $entity_type . '.' . $field_name;
}
}
}
if (count($fields)) {
if (count($fields) === 1) {
$form_state
->setErrorByName('enable_color_field', $this
->t('The Color field cannot be disabled until the following Color field has been deleted: %field', [
'%field' => array_pop($fields),
]));
}
else {
$string = '<ul>';
$vars = [];
foreach ($fields as $index => $field) {
$string .= '<li>@value' . $index . '</li>';
$vars['@value' . $index] = $field;
}
$sring .= '</ul>';
$list = new FormattableMarkup($string, $vars);
$form_state
->setErrorByName('enable_color_field', $this
->t('The following fields are Color fields, so the Color Field cannot be disabled until they have been deleted: @field', [
'@field' => $list,
]));
}
}
}
}