You are here

function _phrase_captcha_generate_words in CAPTCHA Pack 8

Same name and namespace in other branches
  1. 5 text_captcha/phrase_captcha/phrase_captcha.module \_phrase_captcha_generate_words()
  2. 6 text_captcha/phrase_captcha/phrase_captcha.inc \_phrase_captcha_generate_words()
  3. 7 text_captcha/phrase_captcha/phrase_captcha.module \_phrase_captcha_generate_words()

Function for generating an array of words.

1 call to _phrase_captcha_generate_words()
phrase_captcha_captcha in text_captcha/modules/phrase_captcha/phrase_captcha.module
Implements hook_captcha().

File

text_captcha/modules/phrase_captcha/phrase_captcha.module, line 108
Implementation of a phrase based CAPTCHA, for use with the CAPTCHA module.

Code

function _phrase_captcha_generate_words($num) {
  $words = [];
  if (\Drupal::config('phrase_captcha.settings')
    ->get('phrase_captcha_words') == PHRASE_CAPTCHA_USER_DEFINED_WORDS) {

    // Use user defined words.
    $uwords = _text_captcha_word_pool_get_content('phrase_captcha_userdefined_word_pool', NULL, '', TRUE);
    switch ($num) {
      case 0:
        break;
      case 1:
        $words[] = $uwords[array_rand($uwords, $num)];
        break;
      default:
        $keys = array_rand($uwords, $num);
        foreach ($keys as $key) {
          $words[] = $uwords[$key];
        }
        break;
    }
  }
  else {

    // Generate nonsense words.
    for ($w = 0; $w < $num; ++$w) {
      $words[] = _phrase_captcha_generate_nonsense_word(mt_rand(3, 7));
    }
  }
  return $words;
}