Справочная информация: В Drupal 7 я создал форму с CCK (также как пользовательский интерфейс поля). Я использовал модуль Field group, чтобы создать полевую группу, но мне нужно, чтобы она была условной, то есть она будет отображаться только в зависимости от предыдущего ответа.Условные полевые группы/поля в Drupal 7
Предыдущие исследования: Для создания условного поля, вы можете использовать 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'),
),
);
}
}
Однако, кажется, нет никакого способа, чтобы использовать States API для fieldgroups. Следует отметить, что, хотя поля хранятся в $form
, полевые группы хранятся в $form['#groups']
, а также в $form['#fieldgroups']
. Я не знаю, как отличить их, и с учетом этого я попытался применить атрибут #states к групповой группе таким же образом, как описано выше. Однако он вызывает только ошибки сервера.
Вопрос: Есть ли способ сделать отображение групповой группы условно, используя API-интерфейс States или какой-либо альтернативный подход?
Спасибо за отзыв. Я на самом деле не смотрел на нее, потому что мне удалось что-то наконец сработать. Если вы заинтересованы, ознакомьтесь с опубликованным решением. – seane