Вы здесь

Как в Webform засунуть капчу и form-submit в один общий wrapper?

0

Для бутстрапа приходится переопределять отображение форм. И нужно засунуть капчу и form-submit в один блок.
Я так понимаю нужно делать через hook_form_alter, но не знаю как там выудить капчу и вставить в отдельный wrapper.
Создать враппер для кнопки не проблема:

function my_theme_bootstrap_form_alter(&$form, &$form_state, $form_id) {
    if ($form_id == 'webform_client_form_17') {
        $form['actions']['#prefix'] = '<div id="my_wrapper">';
        $form['actions']['#suffix'] = '</div>';
    }

А как в него переместить капчу?

Версия Drupal: 
7.x
Категория: 
Form API
Связанные проекты: 
Webform
Вопрос задан 27.10.2016 - 17:22

Ответы

1
$form['#after_build'][] = 'myafterbuild';

Дальше в myafterbuild делайте с формой что-угодно, это не сломает логику:

$form['wrapper']['element1'] = $form['element1'];
$form['wrapper']['element2'] = $form['element2'];
unset($form['element1']);
unset($form['element2']);
Ответ дан 30.10.2016 - 18:48
Аватар пользователя xandeadx
xandeadx
1542

Спасибо.
Но уже сделал немного по другому.
Подсказали сделать так:
~~~php
$form['actions']['captcha'] = $form['captcha'];
unset($form['captcha']);
$form['actions']['captcha']['#weight'] = 0;
~~~

Комментарий оставлен 31.10.2016 - 08:11
0
$form['actions']['captcha'] = $form['captcha'];
unset($form['captcha']);
$form['actions']['captcha']['#weight'] = 0;
Ответ дан 31.10.2016 - 08:11