Drupal 7 सभी webforms या प्रति सामग्री प्रकार webforms में कैप्चा


9

मैं डी 7 पर हूं।

मेरे पास एक सामग्री प्रकार है जो वेबफॉर्म सक्षम है।

आवश्यकता मुझे इस सामग्री प्रकार के नोड्स के लिए सभी वेबफ़ॉर्म के लिए कैप्चा लागू करने की आवश्यकता है

समस्या D7 में, आपको फ़ॉर्म में कैप्चा प्राप्त करने के लिए सेटिंग पृष्ठ में form_id देना चाहिए, हालाँकि मेरे पास सभी विभिन्न फ़ॉर्म_आईडी के साथ फ़ॉर्म लोड होंगे।

मैं कैप्चा मॉड्यूल का उपयोग कर रहा हूं ।

क्या मेरी आवश्यकता को लागू करने का कोई तरीका है?

जवाबों:


9

आप अपने template.php में निम्न कोड जोड़ सकते हैं

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

इसे yourthemename_form_alter के अंदर रखा जाना चाहिए


धन्यवाद। मुझे बस यह समाधान मिला, यह काम कर गया, अपने सवाल का जवाब देने के लिए वापस आया और देखा कि आपके पास पहले से ही है। :) फिर भी मदद के लिए धन्यवाद।
एसजीहोश

अपने कस्टम कोड का उन लोगों के लिए सेट अनुमतियों का सम्मान करें, जो कैप्चा को छोड़ सकते हैं, अपने तर्क में निम्नलिखित जोड़ सकते हैं: यदि ((($ form_id, 'webform_client_form')) &&! (User_access ('CAPTCHA' छोड़ें))) {$ form ['my_captcha_element'] = array ('#type' => 'captcha', '#captcha_type' => 'default'); }
कुबनेर 21

1

वैकल्पिक रूप से आप इस कोड को कस्टम मॉड्यूल में रख सकते हैं:

/**
* 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',
    );
  }
}

स्रोत: https://drupal.org/node/255795


0

अपने कस्टम कोड के लिए व्यवस्थापक / लोगों / उन लोगों के लिए अनुमतियाँ सेट करें, जो कैप्चा छोड़ सकते हैं, अपने तर्क में निम्नलिखित को शामिल करें:

if ((strstr($form_id, 'webform_client_form')) && !(user_access('skip CAPTCHA'))) {
    $form['my_captcha_element'] = array(
      '#type' => 'captcha',
      '#captcha_type' => 'default',
    );
  }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.