/ / change $ items valor de hook_field_validate - drupal-7

cambiar el valor de $ items de hook_field_validate - drupal-7

Im módulo de construcción que agrega un nuevo widget a los campos ya existentes en Drupal . Drupal utilizando este gancho para validar este campo.

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

EL PROBLEMA ES : cuando agrego un nuevo campo con mi nuevo widget ... y guardo la configuración del campo recibí el mensaje:

list_illegal_value luego encontré que $ item no tiene clave ["valor"] ...

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

mi resultado está en $ item it self no $ item ["value"] Entonces, ¿cómo puedo agregar esta clave ["valor"] a la variable $ item sin modificar el gancho de validación de núcleo

Respuestas

0 para la respuesta № 1

ok este problema esta resuelto para mi ... si creó un nuevo widget para el campo de existencia y encontró este error

list_illegal_value

Asegúrese de que ha creado su formulario de widget como lo siguiente

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