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 № 1OK, 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