drupal 7 – Acceder mediante programación a una relación de grupo de campo

Pregunta:

Creo que estoy usando el módulo Fieldgroup predeterminado. He agregado un nuevo grupo usando "Agregar nuevo grupo", luego he creado un par de campos de prueba y los he anidado en ese grupo.

Veo que la entrada se agrega en mi tabla 'field_group' en mi base de datos. Lo que me pregunto es cómo puedo ver esa relación mediante programación. Por favor, tenga paciencia conmigo. Después de agregar contenido, estoy usando field_info_instance para ver cada campo para ese nodo. No veo ningún campo que muestre una conexión con el grupo que creé. ¿Existe una función que me permita ver esta relación campo por campo?

Gracias,

Respuesta:

No pude encontrar uno en el módulo en ninguna parte, pero improvisé esto y parece funcionar bien:

function field_get_field_group($field) {
  $group_info = field_group_read_groups(array('entity_type' => $field['entity_type'], 'bundle' => $field['bundle']));
  foreach ($group_info[$field['entity_type']][$field['bundle']]['form'] as $group) {
    if (in_array($field['field_name'], $group->children)) {
      return $group;
    }
  }
  return FALSE;
}

Uso:

$field = field_info_instance('node', 'field_image', 'article');

if ($field_group = field_get_field_group($field)) {
  $group_name = $field_group->group_name;
  // etc...
}

Probablemente desee agregar alguna verificación de errores;)

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım