/ / zmień $ item wartość hook_field_validate - drupal-7

zmień $ item wartość hook_field_validate - drupal-7

im moduł budujący, który dodaje nowy widżet do pól już istniejących w drupalu . drupal za pomocą tego haka do sprawdzenia poprawności tego pola

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"])),
);
}
}
}
}

PROBLEMEM JEST : kiedy dodam nowe pole z moim nowym widżetem ... i zapisz ustawienia pól, otrzymałem wiadomość:

list_illegal_value następnie znalazłem, że pozycja $ nie ma klucza ["wartość"] ...

foreach ($items as $delta => $item) {

mój wynik to $ item to self no $ item ["value"] więc jak mogę dodać ten klucz ["wartość"] do zmiennej $ item bez modyfikowania hak sprawdzania poprawności rdzenia

Odpowiedzi:

0 dla odpowiedzi № 1

OK, ten problem został rozwiązany dla mnie ... jeśli utworzyłeś nowy widżet dla istniejącego pola i znalazłeś ten błąd

list_illegal_value

upewnij się, że utworzyłeś formularz widżetu w następujący sposób

$element["value"] += array( // dont forget ["value"] it will couse this problem
"#title" => t( "@title" , array("@title" => $label)) ,
"#type" => "select" ,
...etc