random_captcha_type.module in CAPTCHA Pack 6
File
random_captcha_type/random_captcha_type.module
View source
<?php
function random_captcha_type_help($path, $arg) {
switch ($path) {
case 'admin/user/captcha/random_captcha_type':
return '<p>' . t('This CAPTCHA type is a "meta" CAPTCHA type, which randomly picks one of the selected CAPTCHA types.') . '</p>';
}
}
function random_captcha_type_menu() {
$items = array();
$items['admin/user/captcha/random_captcha_type'] = array(
'title' => 'Random CAPTCHA type',
'file' => 'random_captcha_type.admin.inc',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'random_captcha_type_settings_form',
),
'access arguments' => array(
'administer CAPTCHA settings',
),
'type' => MENU_LOCAL_TASK,
);
return $items;
}
function random_captcha_type_captcha($op, $captcha_type = '', $captcha_sid = '') {
switch ($op) {
case 'list':
require_once 'random_captcha_type.inc';
$enabled_types = _random_captcha_type_get_enabled_types();
if (count($enabled_types) < 2) {
return;
}
return array(
'Random CAPTCHA type',
);
case 'generate':
if ($captcha_type == 'Random CAPTCHA type') {
require_once 'random_captcha_type.inc';
if (isset($_POST['random_captcha_type'])) {
$module_and_type = $_POST['random_captcha_type'];
}
else {
$types = _random_captcha_type_get_enabled_types();
$module_and_type = $types[array_rand($types)];
}
list($module, $type) = explode('/', $module_and_type);
$captcha = module_invoke($module, 'captcha', 'generate', $type, $captcha_sid);
$captcha['form']['random_captcha_type'] = array(
'#type' => 'hidden',
'#value' => $module_and_type,
);
return $captcha;
}
}
}