Drupal 7 Captcha di semua webforms atau per webforms tipe konten


9

Saya menggunakan D7.

Saya memiliki tipe konten yang diaktifkan webform.

Persyaratan Saya perlu menerapkan captcha untuk semua formulir web untuk node dari jenis konten ini.

Masalah Di D7, Anda seharusnya memberikan form_id di halaman pengaturan untuk mendapatkan captcha dalam formulir, namun saya akan memiliki banyak formulir dengan semua form_ids yang berbeda.

Saya menggunakan modul Captcha .

Apakah ada cara untuk mengimplementasikan persyaratan saya?

Jawaban:


9

Anda dapat menambahkan kode berikut ke template.php Anda

if (strstr($form_id, 'webform_client_form')) {
        $form['my_captcha_element'] = array(
            '#type' => 'captcha',
            '#captcha_type' => 'image_captcha/Image',
        );
    }

ini harus ditempatkan di dalam namamu namamu_form_alter


Terima kasih. Saya baru saja mendapatkan solusi ini, berhasil, kembali untuk menjawab pertanyaan saya sendiri dan melihat bahwa Anda sudah memilikinya. :) Terima kasih atas bantuannya.
SGhosh

Agar kode khusus Anda menghargai izin yang ditetapkan untuk orang-orang yang dapat melewati CAPTCHA tambahkan yang berikut ini ke logika Anda: if ((strstr ($ form_id, 'webform_client_form')) &&! (User_access ('skip CAPTCHA'))) {$ form ['my_captcha_element'] = array ('#type' => 'captcha', '#captcha_type' => 'default',); }
kbrinner

1

Atau Anda dapat meletakkan kode ini dalam modul khusus:

/**
* Implementation of hook_form_alter().
*/
function mymodule_form_alter(&$form, $form_state, $form_id) {
  if (preg_match("/^webform_client_form_[0-9]+$/",$form_id) && user_is_logged_in() == FALSE) {
    $form['my_captcha_element'] = array(
      '#type' => 'captcha',
    );
  }
}

Sumber: https://drupal.org/node/255795


0

Agar kode khusus Anda menghormati izin yang ditetapkan di admin / orang / izin untuk orang-orang yang dapat melewati CAPTCHA, tambahkan yang berikut ke logika Anda:

if ((strstr($form_id, 'webform_client_form')) && !(user_access('skip CAPTCHA'))) {
    $form['my_captcha_element'] = array(
      '#type' => 'captcha',
      '#captcha_type' => 'default',
    );
  }
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.