по адресу \plugins\system\cdcaptcha\extension\site\ создаем файл cdcaptcha_com_breezingforms.php с таким содержанием:
<?php // no direct access defined('_JEXEC') or die; /** * WCMS! Contact Component */ class cdcaptcha_com_breezingforms { public $name = 'CDCaptcha and BreezingForms'; public $version = '2.5'; public $enabled = 1; public $redirect = ''; public $rememberFields = 1; public $isAjax = 0; /** * WCMS! Application Input * @var null */ private $JInput = null; /** * Constructor */ public function __construct() { $this->JInput = JFactory::getApplication()->input; } /** * Get Instance * @return instance */ public static function getInstance() { static $instance; if ($instance == null) $instance = new cdcaptcha_com_breezingforms(); return $instance; } /** * Form object * @return object Form element. */ public function formObject() { $formObject = new stdClass(); $view = $this->JInput->get->get('view', '', 'cmd'); //var_dump($view); //{WebXlooForms:ContactUs} switch($view) { case 'form': $formObject->formElement = 'form'; $formObject->submitElement = 'input[name="ff_nm_Submit"]'; $formObject->scriptDeclaration = " container.before('<style>#cdcaptcha {margin: 10px 0 10px -35%; width: 300px;} #cdcaptcha .ui-widget .ui-widget {width: 90%;} #cdcaptcha .infotext {font-size: 1em; font-weight: bold; text-align: center; color: #183e65;} #cdcaptcha .status .status_locked {color: red;} #cdcaptcha .status .status_unlocked {color: green;} #cdcaptcha .infotext {font-style: normal;} #cdcaptcha .status {display:none;}</style><script>$(\".infotext\").html(\"NO ROBOTS ALLOWED\"); $(\".captcha_header\").html(\"\"); $(\".status\").before(\"<center><b>slide to submit</b></center><br>\"); </script>'); container.appendTo($('div', container.prev('div.Submit'))); "; $formObject->rememberFields = array( 'jform'=> array( 'ff_nm_in_name', 'contact_email', 'contact_subject', 'contact_message', 'contact_email_copy' ) ); break; default: $formObject->formElement = 'form'; $formObject->submitElement = 'input[name="ff_nm_Submit"]'; $formObject->scriptDeclaration = " container.before('<style>#cdcaptcha {margin: 10px 0 10px -35%; width: 300px;} #cdcaptcha .ui-widget .ui-widget {width: 90%;} #cdcaptcha .infotext {font-size: 1em; font-weight: bold; text-align: center; color: #183e65;} #cdcaptcha .status .status_locked {color: red;} #cdcaptcha .status .status_unlocked {color: green;} #cdcaptcha .infotext {font-style: normal;} #cdcaptcha .status {display:none;}</style><script>$(\".infotext\").html(\"NO ROBOTS ALLOWED\"); $(\".captcha_header\").html(\"\"); $(\".status\").before(\"<center><b>Slide to submit</b></center><br>\"); </script>'); /*container.appendTo($('div', container.prev('div.Submit'))); console.log(container.parent().before('555'));*/ "; break; } return $formObject; } /** * Check captcha if required * @return boolean True if captcha is checked. */ public function checkCaptchaRules() { $post_task = $this->JInput->post->get('task', '', 'cmd'); switch($post_task) { case 'form.submit': return true; break; default: break; } return false; } } ?>
дальше стили и код правим под свои нужды.
п.с. кнопка сабмита должа иметь имя "Submit" - это же правится в коде тут ff_nm_Submit
апдейт 28.02.2014
обнаружилась проблема, что если у кнопки сабмита в ХТМЛ убрать disabled, то форма отсылается без капчи. решилось так:
в /components/com_breezingforms/facileforms.process.php находим (примерно 2776 строка)
$params = ' action="' . $url . '"' .
и меняем на:
$params = ' action="about:blank' . $url . '"' .
далее в /plugins/system/cdcaptcha/extension/site/cdcaptcha_com_breezingforms.php добавляем проверку на драг слайдера и вставляем скрипт убирания about:blank
$formObject->sliderStop = " console.log('Hello world'); $(function() { $('form').attr('action', function(jj,ww){ return ww.replace('about:blank',''); }); }); console.log('Hello world2'); ";