He usado 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, me he dado cuenta de que cada campo tiene un atributo 'und' en el que se enumera el grupo de campos al que pertenece, pero si crea una matriz 'und' y agrega un nombre de grupo de campo, no funciona .
¿Cómo debería hacerlo?
Respuestas:
Esto es un poco viejo, pero quería hacer lo mismo y no pude encontrar una respuesta en la web. Terminé resolviéndolo solo.
Supongamos que creó un grupo de campos a través de la interfaz CMS con el nombre "group_product_fields". Agregaste algunos campos a ese grupo.
Ahora tiene un nuevo campo incluido en el formulario mediante programación a través de hook_form_alter. Desea agregar ese campo a "group_product_fields". Aquí hay un ejemplo de lo que podría ser el campo:
Todo lo que necesita hacer ahora es agregar ese nuevo campo al grupo de campos. Para ello, agregue la línea de abajo a hook_form_alter. Se puede colocar en cualquier lugar dentro de él.
Eso es todo. Es posible que desee ajustar el peso del campo para que se posicione como desee. Pero al final esto es realmente simple. :)
fuente
Citando después de agregar campos mediante programación a un grupo de campos :
fuente
'mode' => 'form'
o en'mode' => 'default'
lugar de'mode' => 'full'
, o simplemente omitirmode
en absoluto. Any view_mode_name, gracias @Maiq FashNo estoy seguro de cómo funcionó para ti. Porque el nombre de la clave de matriz debe coincidir con el nombre del campo de la base de datos. Y estan:
Tengo que usar el siguiente formato para que funcione. Avísame si estoy haciendo algo tonto aquí.
fuente
Echa un vistazo a hook_field_group_build_pre_render_alter ().
Esto le brinda la oportunidad de cambiar la estructura de sus grupos mediante programación.
Por ejemplo, mueva el campo "example_field" al grupo "group_example" desde el elemento de formulario raíz:
fuente
Primero, encuentre el nombre de la máquina del grupo de campo en el panel CMS y luego en su formulario alter do
Por un instante, agregué un correo de campo personalizado al
User form field group
grupo de campo:fuente