Mayo 14, 2013
enzo
Usando el módulo Field Group podemos crear formularios multistep para brindar una mejor experiencia al usuario, sin embargo si en nuestro sitio hacemos alguna personalización a los formularios usando el hook hook_form_alter es probable que deseemos comprobar si es un formulario multistep o no.
Aunque visualmente los MultiGroup y MultiPage se asocian a las Entidades estos elementos no son creados mediante el Field API por lo que la solución propuesta en Como obtener los fields de un Entity en Drupal 7 no funcionaria, pero si tiene dudas en la diferencia ente Bundle y Entity recomiendo su lectura.
Ahora bien para realizar la tarea de detectar si un bundle es multistep o lo podemos realizar con el siguiente código.
$groups = field_group_info_groups('entityform', $machine_name, 'form');
if (count($groups)) {
// Código para formulario multigroup
}
En el ejemplo se llama a la función field_group_info_groups la cual retorna la definición de los grupos.
La función recibe tres parámetros Entity, Bundle y ModeView los cuales deben ser pasados en conjunto ya que sin el ModeView o sin el Bundle la función retorna vació. Si no se sabe en que Bundles esta siendo usando los multigroups se puede llamar sin parámetros y retorna todas las definiciones.
Espero que haya sido de ayuda.