Спам достал! И в основном достал из формы "Задать вопрос"... Благо есть рабочее решение!
Для начала нам потребуется
библиотека от Google recaptchalib.phpНа момент написания актуальная версия - 1.11
Далее помещаем файл-библиотеку по адресу
"ваш_сайт/plugins/captcha/recaptcha/"Что такое "Privat key" и "Public key" здесь объяснять не буду. Предполагается что вы знакомы с данными терминами. Если нет, то вам прямая дорога к поиску...
Закачали значит библиотеку и направляемся прямиком в
"ваш_сайт/components/com_virtuemart/controllers/"В файле
productdetails.php находим функцию
mailAskquestion () и сразу после ее объявления до слов "// Display it all" вставляем:
//start captcha
require_once(JPATH_BASE.DS.'plugins'.DS.'captcha'.DS.'recaptcha'.DS.'recaptchalib.php');
$privatekey = "ВАШ_ПРИВАТНЫЙ_КЛЮЧ";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
//end captcha
Далее в этой же функции находим условие отвечающее за контроль длины сообщения и т.п.
Начинается оно со слов
if ($commentSize < $min or $commentSize > $max or !$validMail) {
и меняем данное условие на
if ($commentSize < $min or $commentSize > $max or !$validMail or !$resp->is_valid) {
Сразу после открытия фигурных скобок и слов
$errmsg = JText::_ ('COM_VIRTUEMART_COMMENT_NOT_VALID_JS');
добавляем условие проверки валидности введенной CAPTCHA:
//start captcha
if (!$resp->is_valid) {
$errmsg ="Вы не верно ввели код подтверждения. Попробуйте еще раз.<br /> reCAPTCHA вернула: " . $resp->error;
}
//end captcha
if ($commentSize ....
На этом правка productdetails.php закончена. Сохраняем и направляемся в
"ваш_сайт/components/com_virtuemart/view/askquestion/form.php"Если у вас шаблон VM перенесен в папку "ваш_сайт/templates/..." правим аналогичный файл, но уже по вашему пути.
В нем находим начало объявления кнопки
<div class="submit"> и сразу после него вставляем:
<?php
//start captcha
require_once(JPATH_BASE.DS.'plugins'.DS.'captcha'.DS.'recaptcha'.DS.'recaptchalib.php');
$publickey = "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ";
echo recaptcha_get_html($publickey);
//end captcha
?>
<input class=" ......
Сохраняем. Закрываем. Проверяем. На этом всё.
В приложении находится необходимая библиотека от Google.
Посмотреть работающую капчу можно
здесь[вложение удалено Администратором]