If you need to integrate this with Dolphin 6 Look Here
For Dolphin 7 You can swap the current Captcha for a third party one with Captcha Refresh and Audio.
I have done this with Securimage from http://www.phpcaptcha.org/
You can set it to play audio via flash or by clicking an image that plays a wav file.
I used Securimage V 2.0.1 for this tutorial.
Step 1.
Upload Securimage files to a folder called /captcha/ in your main dolphin directory.
Step 2. Set Cookie for D7
Edit /captcha/securimage.php
Find: around line 1000
function generateCode($len)
{
$code = '';
for($i = 1, $cslen = strlen($this->charset); $i <= $len; ++$i) {
$code .= $this->charset{rand(0, $cslen - 1)};
}
return $code;
}
Replace with:
function generateCode($len)
{
$code = '';
for($i = 1, $cslen = strlen($this->charset); $i <= $len; ++$i) {
$code .= $this->charset{rand(0, $cslen - 1)};
}
$hashtext = md5($code);
setcookie('strSec', $hashtext, 0, '/');
return $code;
}
Step 3. Show Captcha Code in D7 Join Form
Edit /templates/base/scripts/BxBaseFormView.php
Find: around line 217
$sButtonAdd = <<<BLAH
<img src="$sReloadImgUrl" class="reload_button" alt="$sReloadText" title="$sReloadText"
onclick="var \$img = $(this).siblings('.input_wrapper').children('.form_input_captcha').children('img.captcha'); \$img.attr('src', \$img.attr('src').split('?')[0] + '?r=' + Math.random());" />
BLAH;
Replace with:
$sPlayFile = BX_DOL_URL_ROOT . 'captcha/securimage_play.php';
$sPlayIcon = BX_DOL_URL_ROOT . 'captcha/images/audio_icon.gif';
$sButtonAdd = <<<BLAH
<a style="border-style: none;float:left;" href="$sPlayFile" title="Audible Version of CAPTCHA"><img src="$sPlayIcon" alt="Audio Version" style="border:none" alt="this.blur()" /></a>
<img src="$sReloadImgUrl" class="reload_button" alt="$sReloadText" title="$sReloadText"
onclick="var \$img = $(this).siblings('.input_wrapper').children('.form_input_captcha').children('img.captcha'); \$img.attr('src', \$img.attr('src').split('?')[0] + '?r=' + Math.random());" />
BLAH;
Then find around line 1034
$sSimgUrl = BX_DOL_URL_ROOT . 'simg/simg.php';
And replace with
$mtime= md5(time());
$sSimgUrl = BX_DOL_URL_ROOT . 'captcha/securimage_show.php?sid=' . $mtime;