[Решено] Как вставить reCaptcha в форму "Задать вопрос" -"Ask question"

  • 11 Ответов
  • 5011 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Tuzemec

  • ****
  • 224
  • 26
  • Ня!
Спам достал! И в основном достал из формы "Задать вопрос"... Благо есть рабочее решение!
Для начала нам потребуется библиотека от 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.
Посмотреть работающую капчу можно здесь

[вложение удалено Администратором]
« Последнее редактирование: 11.04.2013, 03:12:03 от Tuzemec »
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!

*

Nibiru

  • ***
  • 157
  • 0
  • lepnina.info
После установки при заполнении формы вопроса и попытки отправки пишет, что сначала надо пройти авторизацию, хотя она пройдена и выкидывает. Заливаю файлы без модификации и всё в норме. В чём может быть проблема?

*

Максим Пишняк

  • ******
  • 847
  • 35
  • Подразделение Virtuemart Украина
Можно вам предложить намного более полезный вариант CAPTCHA для формы "Задать вопрос"?
Virtuemart 2 работает практически без ошибок. Вы можете поддержать Сообщество, проголосовав за Virtuemart. Присоединяйтесь к нам на Facebook, Google Plus, Linkedin. Подпишитесь на Еженедельник о Virtuemart на Twitter

*

Nibiru

  • ***
  • 157
  • 0
  • lepnina.info
буду признателен!

*

Максим Пишняк

  • ******
  • 847
  • 35
  • Подразделение Virtuemart Украина
Easy Calc Check Plus - JED.
Virtuemart 2 работает практически без ошибок. Вы можете поддержать Сообщество, проголосовав за Virtuemart. Присоединяйтесь к нам на Facebook, Google Plus, Linkedin. Подпишитесь на Еженедельник о Virtuemart на Twitter

*

Nibiru

  • ***
  • 157
  • 0
  • lepnina.info
Благодарю! Шикарная вещь!

*

Максим Пишняк

  • ******
  • 847
  • 35
  • Подразделение Virtuemart Украина
Всегда, пожалуйста.
Virtuemart 2 работает практически без ошибок. Вы можете поддержать Сообщество, проголосовав за Virtuemart. Присоединяйтесь к нам на Facebook, Google Plus, Linkedin. Подпишитесь на Еженедельник о Virtuemart на Twitter

На моем сайте зарегистрировался другой пользователь. Что это значит и что делать?

*

Nibiru

  • ***
  • 157
  • 0
  • lepnina.info
На моем сайте зарегистрировался другой пользователь. Что это значит и что делать?
Всмысле? У всех регистрируются другие пользователи!

*

Nibiru

  • ***
  • 157
  • 0
  • lepnina.info
Всегда, пожалуйста.
Максим, подскажите как вставить при помощи Easy Calc или другого метода капчу в vendor-contact . Спасибо.

*

serjik

  • ****
  • 333
  • 0
после описанных модификаций с файлами никакой  CAPTCHA не появилось.

*

Tuzemec

  • ****
  • 224
  • 26
  • Ня!
Так с момента написания темы прошло 3 года. За это время Google изменил версию CAPTCHA. Старая, на сколько известно мне, более не поддерживается.
Да и если положа руку на сердце, то сам к примеру, отказался от VM в пользу JoomShopping. Очень понравились фичи с плагинами, аддонами прочими дополнениями.
Очень удобная возможность, без дополнений, через импорт\экспорт с CSV обновлять цены  т.п.
« Последнее редактирование: 04.09.2016, 21:50:00 от Tuzemec »
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!