function gdpr_consent_field_add_validation in General Data Protection Regulation 3.0.x
Custom form validation.
Parameters
array $form: The form.
\Drupal\Core\Form\FormStateInterface $formState: The form state.
Throws
\Exception
1 string reference to 'gdpr_consent_field_add_validation'
- gdpr_consent_form_field_ui_field_storage_add_form_alter in modules/
gdpr_consent/ gdpr_consent.module - Implements hook_form_FORM_ID_alter().
File
- modules/
gdpr_consent/ gdpr_consent.module, line 27 - Module file for the GDPR Consent module.
Code
function gdpr_consent_field_add_validation(array &$form, FormStateInterface $formState) {
// @todo Set up for existing fields.
if ('gdpr_user_consent' === $formState
->getValue('new_storage_type', FALSE)) {
/** @var \Symfony\Component\HttpFoundation\RequestStack $requestStack */
$requestStack = Drupal::service('request_stack');
/** @var \Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface $requestParameters */
$requestParameters = $requestStack
->getCurrentRequest()->attributes;
if ($requestParameters
->has('entity_type_id') && $requestParameters
->has('bundle')) {
$entityTypeId = $requestParameters
->get('entity_type_id');
$entityBundle = $requestParameters
->get('bundle');
/** @var \Drupal\gdpr_consent\ConsentUserResolver\ConsentUserResolverPluginManager $consentResolverManager */
$consentResolverManager = Drupal::service('plugin.manager.gdpr_consent_resolver');
/** @var array|bool $resolver */
$resolver = $consentResolverManager
->getDefinitionForType($entityTypeId, $entityBundle);
if (FALSE === $resolver) {
$formState
->setError($form['add'], t('The "@entityBundle" bundle for the "@entityTypeId" entity type has no available user resolver. Please ensure there is a resolver registered.', [
'@entityBundle' => $entityBundle,
'@entityTypeId' => $entityTypeId,
]));
}
}
}
}