Все для вебмастера | MOGUTAHELP.RU

Зарегистрируйте бесплатный аккаунт чтобы стать участником нашего портала! После входа в систему вы сможете получить доступ к информации для пользователей , добавлять свои собственные темы и сообщения, а также общаться с другими участниками!

Полезное Установка модуля reCAPTCHA 2.0 Okay CMS

Selin

Пользователь
Пользователь
Сообщения
36
Баллы
8
Решение замены стандартной каптчи на google

По пунктам:
п.1
Заходим на сайт https://www.google.com/recaptcha/admin
Получаем ключи, которые потом будет записывать в админке в разделе "Настройки"

п.1.1
Загружаем файлы в папку captcha (создать ее самому)
Перейти по ссылке

п.2
Открываем файл /backend/core/SettingsGeneralAdmin.php

PHP:
/* ReCaptcha */
$this->settings->site_code = $this->request->post('site_code');
$this->settings->secret_code = $this->request->post('secret_code');
код вставляем в 23 строку (т.е. внутри первого if)
примеры
upload_2017-11-7_20-31-36.png


п.3
Открываем файл backend/design/html/settings_general.tpl
и добавляем в него

HTML:
<div class="block layer">
<h2>Управление <a href="https://www.google.com/recaptcha/admin">ключами ReCaptcha API</a></h2>
<ul>
<li><label class=property>Ключ</label><input name="site_code" class="simpla_inp" type="text" value="{$settings->site_code|escape}" /></li>
<li><label class=property>Секретный ключ</label><input name="secret_code" class="simpla_inp" type="text" value="{$settings->secret_code|escape}" /></li>
</ul>
</div>
Этот код добавит в админке Настройки сайта>Настройки Сайта два
поля, куда после нужно вставить ключи, выданные вам сервисом Google


upload_2017-11-7_21-3-0.png


п.4
Открываем файл /view/View.php

вставляем:
PHP:
require_once('captcha/autoload.php');
п.5
Открываем файлы из папки /view/ CartView.php | BlogView.php | FeedbackView.php | ProductView.php | RegisterView.php

п.5.1
Вставляем код в первую функцию, каждого файла
PHP:
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);
примеры

upload_2017-11-7_20-43-16.png



upload_2017-11-7_20-43-52.png



п.5.2
Ищем :
PHP:
$captcha_code = $this->request->post('captcha_code', 'string');
в файлах feedbackView.php и RegisterView.php код немного другой
PHP:
$captcha_code = $this->request->post('captcha_code');
заменяем его во всех файлах на
PHP:
$captcha_code = $this->request->post('g-recaptcha-response');$response = $reCaptcha->verify($captcha_code, $order->ip);
п.5.3
Ищем
PHP:
elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))
или
PHP:
elseif(empty($_SESSION['captcha_code']) || $_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))
или
PHP:
if ($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))
и внутри них меняем только условие на
PHP:
$response->getErrorCodes()
Только условия! чтобы выглядело так

upload_2017-11-7_20-52-34.png



upload_2017-11-7_20-53-32.png



п.6

Открываем файлы design/[ваш шаблон]/html/cart | feedback | post | product | register.tpl,

ищем такой или схожий код, обычно имеющий класс captcha:
HTML:
<input class="form-control" type="text" name="captcha_code" value="" data-format="\d\d\d\d\d" data-notice="{$lang->form_enter_captcha}" data-language="{$translate_id['form_enter_captcha']}" placeholder="{$lang->form_enter_captcha}*"/>
Заменяем на:
HTML:
<div class="g-recaptcha" data-sitekey="{$settings->site_code|escape}"></div>
п.7
Не забываем добавить в index.tpl код, перед закрывающем тэгом </head>
HTML:
<script src='https://www.google.com/recaptcha/api.js'></script>
 
Верх