Drupal: Как сделать fieldset зависимого с помощью CTools

Я использую Зависимость Ctools для создания fieldset hideable. Это - часть моего кода:

$form['profile-status'] = array(
    '#type' => 'radios',
    '#title' => '',
    '#options' => array(
        'new' => t('Create a new profile.'),
        'select' => t('Use an existing profile.'),
    ),
);

$form['select'] = array(
    '#type' => 'select',
    '#title' => t('Select a profile'),
    '#options' => $options,
    '#process' => array('ctools_dependent_process'),
    '#dependency' => array('radio:profile-status' => array('select')),
);

$form['profile-properties'] = array(
    '#type' => 'fieldset',
    '#title' => t('View the profile'),
    '#process' => array('ctools_dependent_process'),
    '#dependency' => array('radio:profile-status' => array('select')),
    '#input' => true,
);

В отрывке выше, существует два элемента, один выбор и один fieldset. У обоих есть #process и #dependency параметры и обе точки к одному полю для зависимого значения. Проблемой являются элементы как избранное или текстовое поле, может быть скрыт легко, но это не работает на fieldset. На этой странице запроса поддержки создатель CTools упомянул это '#input' => true работа вокруг. Поскольку Вы видите, что я добавил его для кодирования, но это не работает также.

У Вас есть какое-либо предложение?

5
задан mzy 19 March 2015 в 16:49
поделиться

1 ответ

Я нашел свой ответ после прочтения исходников зависимого CTools. Fieldset должен изменяться следующим образом:

$form['profile-properties'] = array(
    '#type' => 'fieldset',
    '#title' => t('View the profile'),
    '#process' => array('ctools_dependent_process'),
    '#dependency' => array('radio:profile-status' => array('select')),
    '#input' => true,

    '#id' => 'my-fs-id',
    '#prefix' => '<div id="my-fs-id-wrapper">',
    '#suffix' => '</div>',
);

Сначала необходимо задать ID для fieldset. Затем он должен быть обернут в тег DIV. ID DIV должен быть ID feildset с суффиксом '-wrapper'.

5
ответ дан 14 December 2019 в 13:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: