Pregunta:
He utilizado el módulo "Grupo de campo" y he creado algunos grupos en el backend. Ahora quiero agregar programáticamente un campo al grupo. Cómo puedo hacer eso.
Estoy usando Hook_form_alter, he notado que cada campo tiene un atributo 'und' en el que se enumera el grupo de campo al que pertenece, pero si una matriz create y 'und' y le agrega un nombre de grupo de campo, no funciona .
¿Cómo debería hacerlo?
Respuesta:
Esto es un poco antiguo, pero quería hacer lo mismo y no pude encontrar una respuesta en la web. Terminé descubriéndolo yo mismo.
Supongamos que creó un grupo de campos a través de la interfaz CMS con el nombre "group_product_fields". Agregó algunos campos a ese grupo.
Ahora tiene un nuevo campo que se incluye en el formulario mediante programación a través de hook_form_alter. Desea agregar ese campo a "group_product_fields". A continuación, se muestra un ejemplo de lo que podría ser el campo:
$form['new_product_field'] = array(
'#type' => 'textfield',
'#title' => t('New product field'),
'#description' => t('Description for this new product field'),
);
Todo lo que necesita hacer ahora es agregar ese nuevo campo al grupo de campos. Para hacer eso, agregue la línea a continuación al hook_form_alter. Se puede colocar en cualquier lugar de su interior.
$form['#group_children']['new_product_field'] = 'group_product_fields';
Eso es todo. Es posible que desee ajustar el peso del campo para colocarlo como desee. Pero al final esto es realmente simple. 🙂