im строительный модуль, который добавляет новый виджет в поля, уже существующие в drupal.drupal использует этот хук для проверки этого поля
function list_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
$allowed_values = list_allowed_values($field);
foreach ($items as $delta => $item) {
if (!empty($item['value'])) { // =======> the problem is here
if (!empty($allowed_values) && !isset($allowed_values[$item['value']])) {
$errors[$field['field_name']][$langcode][$delta][] = array(
'error' => 'list_illegal_value',
'message' => t('%name: illegal value.', array('%name' => $instance['label'])),
);
}
}
}
}
ПРОБЛЕМА ЕСТЬ: когда я добавляю новое поле с моим новым виджетом ... и сохраняю настройки поля, я получаю сообщение:
list_illegal_value тогда я обнаружил, что у $ item нет ключа ['value'] ...
foreach ($items as $delta => $item) {
мой результат в $ item само по себе не $ item ['value'], так как я могу добавить этот ключ['value'] в переменную $ item без изменения хука проверки ядра