Joomla 2.5 и скрипт *я не робот* от Googl

12
V6
На сайте с 04.03.2009
Offline
147
1064

Всем привет! Хочу в комментах заменить капчу на гугловскую. С кодами для плагина разобрался, а вот сам скрипт этой капчи не знаю куда вставить, в какую папку корневую. В шаблон вставляю, скрипт видно, отображается, но нужно, чтобы в комментах же он был. Кто знает, подскажите, пожалуста, а то чет я совсем затупил.

Спасибо.

V6
На сайте с 04.03.2009
Offline
147
#1

Неужели никто не устанавливал себе такой скрипт на Джумлу? Не думал, что это такой сложный вопрос:(

M
На сайте с 04.10.2011
Offline
90
#2

veb674, Так модулем и вставляйте. Точно не помню, но что-то типа "модуль html"

Сдается, обращаться скайп avdesk-it-kmm Верстка, кодинг - контакты в профиле... VPS от 5€ (https://gmhost.com.ua/?partner=10255)
V6
На сайте с 04.03.2009
Offline
147
#3

Там у Гугла написано: "Вставьте этот фрагмент в конце объекта <form> (там, где нужно разместить виджет reCAPTCHA)". Куда вставлять-то, в какой файл? Вот в чём вопрос.

E
На сайте с 27.10.2018
Offline
1
#4

Так Вы для начала укажите, какой компонент комментариев Вы используете? А то их много, как тут подсказать в какой файл, у каждого из компонентов своя структура.

V6
На сайте с 04.03.2009
Offline
147
#5

Ах, да. У меня вот этот компонент стоит - JComments 3.0.5

E
На сайте с 27.10.2018
Offline
1
#6

Добрый день. Извините за столь поздний ответ, очень много работы.

Т.к. у Вас Joomla 2.5, то я настоятельно рекомендовал бы Вам обновить её до последней актуальной версии.

Если таковой возможности нет, то ознакомьтесь первоначально со статьей https://forum.joomla.org/viewtopic.php?t=956087#p3499158 по поводу того как вообще добавить reCaptcha v.2 к Joomla 2.5

После этого ознакомьтесь со статьей https://ogri.me/ru/web-design-development/1075-joomla-integriruem-recaptcha-v2-no-captcha-v-jcomments о том, как добавить reCaptcha в jComments.

Если Вы не хотите добавлять reCaptcha v.2 в саму Joomla, а сделать её просто через отдельный скрипт, то на основе второй статьи Вы самостоятельно можете сделать подобное подключение, заменив код импорта плагина captcha на прямое подключение скриптов.

Если в конечном итоге у Вас так и не получится ничего сделать, сообщите, постараюсь найти время и помочь с этим вопросом.

V6
На сайте с 04.03.2009
Offline
147
#7

Esser, спасибо, что отозвались. Ваши ссыли смотрел, но мне все равно не понятно в инструкции у Гугла вот этот момент: "Вставьте этот фрагмент в конце объекта <form> (там, где нужно разместить виджет reCAPTCHA)". Куда вставлять, в какой обьект? Или без правки кода не обойтись?

S
На сайте с 30.09.2016
Offline
469
#8
veb674:
Или без правки кода не обойтись?

А как Вы обойдётесь, если один код надо вставить в другой?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
E
На сайте с 27.10.2018
Offline
1
#9
veb674:
Esser, спасибо, что отозвались. Ваши ссыли смотрел, но мне все равно не понятно в инструкции у Гугла вот этот момент: "Вставьте этот фрагмент в конце объекта <form> (там, где нужно разместить виджет reCAPTCHA)". Куда вставлять, в какой обьект? Или без правки кода не обойтись?

Если Вы будете делать по тем статьям, что я скинул, то Вам не нужна инструкция гугла, совершенно, от него Вам нужен будет только ключ и секрет.

А вот если Вы хотите сделать в обход статьям, то да, Вам нужно будет следовать инструкции гугла. По поводу того в какое место - смотрите вторую ссылку, что я дал, просто так воткнуть куда попало не получится, т.к. еще обязательно понадобится добавить обработчик, а иначе комментарий будет улетать в обход капчи.

Отсюда - да, без правки кода никак не обойтись. К сожалению разработчики JComments так и не озаботились о том, чтобы прикрутить гуглокапчу.

E
На сайте с 27.10.2018
Offline
1
#10

Добрый вечер.

Вот Вам пример на скорую руку, если не хотите заморачиваться с плагинами и статьями.

Откройте файл /components/com_jcomments/tpl/default/tpl_form.php и найдите в нем условие (128 строка):

if ($this->getVar('comments-form-captcha', 0) == 1) {

Закомментируйте условие полностью и допишите строку после закрывающего тега пхп:

<div class="g-recaptcha" data-sitekey="ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ"></div>

Как показано на скриншоте http://joxi.ru/E2ppPX3C9qWgZ2 обратите внимание на открывающие/закрывающие теги php.

Теперь откройте файл /components/com_jcomments/jcomments.ajax.php и найдите в нем условие (примерно 230 строка):

if ($acl->check('enable_captcha') == 1) {

И также полностью закомментируйте и добавьте код:

if (isset($post['g-recaptcha-response']) && $post['g-recaptcha-response']) {

$secret = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ';
$ip = $_SERVER['REMOTE_ADDR'];
$g_response = $post['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $secret . "&response=" . $g_response . "&remoteip=" . $ip);
$arr = json_decode($rsp, TRUE);
if (!$arr['success']) {
self::showErrorMessage('Вы не прошли проверку, попробуйте еще раз.');
return $response;
}
} else {
self::showErrorMessage('Код безопасности не был передан, попробуйте еще раз.');
return $response;
}

Как показано на скриншоте http://joxi.ru/l2ZxJEKcw59bbr

Там где написано "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ" и "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ" - пропишите свои значения, которые Вам выдал гугл.

И последнее, откройте индексный файл Вашего шаблона /templates/ВАШ_ШАБЛОН/index.php (возможно у Вас в другом файле) и перед закрывающим тегом </head> добавьте строку:

<script src='https://www.google.com/recaptcha/api.js'></script>

Проверяйте.

Но это прям "топорный" вариант решения. Лучше всё же советую обновить сайт и сделать по нормальному.

Код править в любом случае придется, либо пересаживайтесь на другой компонент комментариев. Соответственно обновлять компонент нельзя, иначе все правки слетят.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий