- Сообщения
- 36
- Баллы
- 8
Решение замены стандартной каптчи на google
По пунктам:
п.1
Заходим на сайт https://www.google.com/recaptcha/admin
Получаем ключи, которые потом будет записывать в админке в разделе "Настройки"
п.1.1
Загружаем файлы в папку captcha (создать ее самому)
Перейти по ссылке
п.2
Открываем файл /backend/core/SettingsGeneralAdmin.php
код вставляем в 23 строку (т.е. внутри первого if)
примеры
п.3
Открываем файл backend/design/html/settings_general.tpl
и добавляем в него
Этот код добавит в админке Настройки сайта>Настройки Сайта два
поля, куда после нужно вставить ключи, выданные вам сервисом Google
п.4
Открываем файл /view/View.php
вставляем:
п.5
Открываем файлы из папки /view/ CartView.php | BlogView.php | FeedbackView.php | ProductView.php | RegisterView.php
п.5.1
Вставляем код в первую функцию, каждого файла
примеры
п.5.2
Ищем :
в файлах feedbackView.php и RegisterView.php код немного другой
заменяем его во всех файлах на
п.5.3
Ищем
или
или
и внутри них меняем только условие на
Только условия! чтобы выглядело так
п.6
Открываем файлы design/[ваш шаблон]/html/cart | feedback | post | product | register.tpl,
ищем такой или схожий код, обычно имеющий класс captcha:
Заменяем на:
п.7
Не забываем добавить в index.tpl код, перед закрывающем тэгом </head>
По пунктам:
п.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');
примеры
п.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
п.4
Открываем файл /view/View.php
вставляем:
PHP:
require_once('captcha/autoload.php');
Открываем файлы из папки /view/ CartView.php | BlogView.php | FeedbackView.php | ProductView.php | RegisterView.php
п.5.1
Вставляем код в первую функцию, каждого файла
PHP:
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);
п.5.2
Ищем :
PHP:
$captcha_code = $this->request->post('captcha_code', 'string');
PHP:
$captcha_code = $this->request->post('captcha_code');
PHP:
$captcha_code = $this->request->post('g-recaptcha-response');$response = $reCaptcha->verify($captcha_code, $order->ip);
Ищем
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()
п.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>
Не забываем добавить в index.tpl код, перед закрывающем тэгом </head>
HTML:
<script src='https://www.google.com/recaptcha/api.js'></script>