Вы здесь

Как изменить функцию валидации виджета поля из своего модуля ?

0

Добрый день.

У ноды есть поле, у поля есть виджет, у виджета есть какая-то функция валидации.
И есть необходимость сделать так, чтобы из своего модуля эту функцию валидации подкорректировать.

Например, сделать так, чтобы валидация поля зависела от каких-то других условий. Допустим, если турпоездка помечена как "по мере комплектования группы", то указывать даты для неё не обязательно, иначе обязательно.

В общем, попробовал сделать вот так, вызвав hook_field_widget_WIDGET_TYPE_form_alter: по образцу того, как валидация подключается внутри объявления виджета (в методе formElement).

function my_module_field_widget_MY_WIDGET_ID_form_alter(&$element, FormStateInterface $form_state, $context)
{
    $element['#element_validate'] = array(
        array($context['widget'],'_my_validation_function')
    );
}

И в этом случае моя функция валидации не подключается.

Скажите пожалуйста, как сделать так, чтобы при одних условиях выполнялась твоя функция валидации для виджета , а при других - стандартная ?

Версия Drupal: 
8.x
Категория: 
Field API
Вопрос задан 01.05.2017 - 16:43

Ответы