Добавить пользовательский код в веб-форму Drupal 7

Я ищу, чтобы добавить пользовательский ввод капчи в веб-форму Drupal. Капча, которую я хочу использовать, недоступна в качестве плагина, поэтому я хочу перехватить форму, когда она выводится, а затем добавить свой скрипт презентации капчи.

Я уже знаю, как поймать форму с <theme>_form_alter(), В чем я не уверен, так это в том, как я могу вводить элементы в форму в определенный момент. Если кто-нибудь знает, как этого добиться, было бы полезно.

0

Решение

Вы можете добавить свой сценарий с preventDefault на форме отправить. Пройдите проверку на стороне клиента и отправьте форму. Добавление вашего JavaScript будет следующим:

/**
* Implements hook_form_alter().
*/
function MODULENAME_form_alter(&$form, &$form_state, $form_id) {
dpm($form_id);
if ($form_id == 'YOUR_FORM_ID_HERE') { // Example Form ID: webform_client_form_23

$form['#attached']['js'][] = drupal_get_path('module', 'MODULENAME') . 'path/to/example_file.js';

// OR

drupal_add_js(drupal_get_path('module', 'MODULENAME') . 'path/to/example_file.js');

}
}
1

Другие решения

Вы можете сделать это с легкостью, переопределив создание формы по умолчанию. Создайте файл в папке вашего шаблона для вашей веб-формы, скажем, его webform-form-22.tpl.php..
Использовать $form переменная, которая доступна по умолчанию. Поместите элементы формы из $form Переменный и поместите вашу собственную капчу в соответствии с вашими требованиями в любом месте формы, и подтвердите в хуке custom_module_webform_submission_insert..

0

По вопросам рекламы [email protected]