Предыстория: в Drupal 7 я создал форму с помощью CCK (он же Field UI). Я использовал модуль Field group для создания fieldgroup, но мне нужно, чтобы он был условным, то есть он будет отображаться только в зависимости от предыдущего отвечать.
Предыдущие исследования: чтобы создать условное поле, вы можете использовать hook_form_alter() для редактирования #states атрибут так:
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'person_info_node_form') {
// Display 'field_maiden_name' only if married
$form['field_maiden_name']['#states'] = array(
'visible' => array(
':input[name="field_married[und]"]' => array('value' => 'Yes'),
),
);
}
}
Однако, похоже, нет никакого способа использовать API состояний для групп полей. Следует отметить, что хотя поля хранятся в $form
, группы полей хранятся в $form['#groups']
, а также в $form['#fieldgroups']
. Я не знаю, как их различать, и, имея это в виду, я попытался применить #states к группе полей таким же образом, как описано выше. Однако это приводит только к ошибкам сервера.
Вопрос. Есть ли способ настроить отображение группы полей с помощью API состояний или какого-либо альтернативного подхода?