Tengo un módulo personalizado e intento ocultar un grupo de campo CCK usando "#states" cuando se selecciona un determinado elemento en una lista de selección desplegable.
He intentado usar estados desde hook_form_alter (), así:
$form['group_mygroup']['#states']['invisible'] = array(
':input[name="field_trigger[' . LANGUAGE_NONE. ']"]' => array( 'value' => 'hide' ),
);
Esto no parece hacer nada.
He buscado cambiar el peso de mi módulo según varios sitios como http://proofgroup.com/blog/2008/dec/modifying_cck_fieldgroups_hook_form_alter .
pero aún en vano. Puedo ocultar todos los elementos del formulario dentro del grupo de campos usando estados pero no el grupo de campos en sí. ¿Alguien tiene alguna idea?
7
javascript
thepearson
fuente
fuente

Respuestas:
/ ** * Implementa hook_field_group_build_pre_render_alter. * / función mymodule_field_group_build_pre_render_alter (& $ element) { if (isset ($ element ['# form_id'])) { if ($ element ['# form_id'] == 'mynodetype_node_form') { $ element ['group_myfieldgroup'] ['# states'] = array ( 'visible' => array ( ': input [name = "field_myfield [und]"]' => array ('check' => TRUE), ) ); $ element ['group_myfieldgroup'] ['# id'] = 'group_myfieldgroup'; } } }Yo uso este gancho para ocultar mi grupo de campo. Solo es visible si la casilla de verificación
field_myfieldestá marcada.Para explorar la
$elementvariable en este gancho uséen lugar de
dpm().Espero que haya ayudado :)
fuente
Los grupos de campo no están definidos en la raíz de
$form. Parece que deberías usar no$form['group_mygroup'], pero$form['#fieldgroups']['group_mygroup'].fuente
Puede mirar el módulo de ejemplo para ver cómo ocultan los conjuntos de campos . Basado en eso, creo que su código debería ser:
fuente