Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Не ставится, как уже говорил в посте, который вы процитировали.
Там инструкция, которая включает в себя установку модуля EICAPTCHA. Он и не ставится.Что не ставится то? я там скинул ссылку на летну где рассказано что и как нужно делать - модули ставить никакие и не нужно. Ручками прописать нужно. Делов на 3 минуты. Если есть конкретные вопросы - пишите, подскажу.
Там инструкция, которая включает в себя установку модуля EICAPTCHA. Он и не ставится.
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="text-right g-recaptcha" data-sitekey="ваш Ключ с сайта капчи (который слева)"></div>
parent::initContent();
$this->setTemplate('contact');
function SiteVerify($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$curlData = curl_exec($curl);
curl_close($curl);
return $curlData;
}
$recaptcha = Tools::getValue('g-recaptcha-response');
if(!empty($recaptcha)){
$google_url="https://www.google.com/recaptcha/api/siteverify";
$secret='Ваш Секретный ключ с сайта капчи (который справа)';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$res=SiteVerify($url);
$res= json_decode($res, true);
if(!$res['success']){
exit();
}
}
else{
$this->errors[] = Tools::displayError('Отметьте галочкой, что Вы не робот, пожалуйста');
}
Ладно, я понял что описать лучше сразу все, заодно и себе на проект поставлю:
Ладно, я понял что описать лучше сразу все, заодно и себе на проект поставлю:
1. Идем на сайт гугла - регистрируем новую рекапчу2 и получаем ключи.
2. Подключаем JS в head.tpl используемого шаблона
у меня стоит шаблон трансформер вот путь до этого файла - ваш_сайт/themes/transformer/templates/_partials (у вас путь может быть другим, в зависимости от шаблона)
- в head.tpl нужно добавить строку:Можно в любое место, но лучше в самый конец перед закрывающим тегом.HTML:<script src='https://www.google.com/recaptcha/api.js'></script>
3. Выводим капчу в форме обратной связи
В файле contactform.tpl путь: ваш_сайт/themes/transformer/modules/contactform/views/templates/widget (у вас путь может быть другим, в зависимости от шаблона)
Вставляемя добавил перед закрывающим тегом </section>HTML:<div class="text-right g-recaptcha" data-sitekey="ваш Ключ с сайта капчи (который слева)"></div>
4. Добавляем обработку капчи в ContactController.php
Добавляем в файле ContactController.php путь ваш_сайт/controllers/front
вставляем сразу после $this->setTemplate('contact');Код:parent::initContent(); $this->setTemplate('contact'); function SiteVerify($url){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $curlData = curl_exec($curl); curl_close($curl); return $curlData; } $recaptcha = Tools::getValue('g-recaptcha-response'); if(!empty($recaptcha)){ $google_url="https://www.google.com/recaptcha/api/siteverify"; $secret='Ваш Секретный ключ с сайта капчи (который справа)'; $ip=$_SERVER['REMOTE_ADDR']; $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip; $res=SiteVerify($url); $res= json_decode($res, true); if(!$res['success']){ exit(); } } else{ $this->errors[] = Tools::displayError('Отметьте галочкой, что Вы не робот, пожалуйста'); }
Это строка 41
Профит! Идем на сайт, переходим на страницу с контактной формой и проверяем работу:
Видим что капча висит, кстати забыл сказать что вывести ее лучше где то рядом с кнопкой и потом поправить стилями для красоты
Проверяем форму на отправку без галочки капчи:
Ну и проверяем с галочкой
Спасибо, теперь уже на что-то похоже, НО:
1) Постоянно сверху формы присутствует красная плашка, мол, подтвердите;
2) Сама капча функционирует (без галки не шлётся, с галкой шлётся), но выводит ещё одну красную плашку, несмотря на то, что всё отсылается, соответственно, создаётся впечатление, что капча не пройдена.
У меня шаблон Warehouse, пути к файлам те же самые, их содержание, видимо, тоже примерно одинаковое.
Такая же история.спам письма на почту не приходят, но остаются в разделе "Клиентская служба"
Извините! Не следил за темой, к сожалению.Такая же история.
if (Tools::isSubmit('submitMessage')) {
{$this->sendMessage();}
if (Tools::isSubmit('submitMessage')) {
if (($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))) == 0) {
$this->errors[] = $this->trans('Please complete reCaptcha', array(), 'Admin.Login.Notification');
}
else {$this->sendMessage();}
Извините! Не следил за темой, к сожалению.
забыл написать последний пункт - проверки капчи в файле по пути: /modules/contactform/ contactform.php
замените этот код:
Код:if (Tools::isSubmit('submitMessage')) { {$this->sendMessage();}
на этот:
Код:if (Tools::isSubmit('submitMessage')) { if (($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))) == 0) { $this->errors[] = $this->trans('Please complete reCaptcha', array(), 'Admin.Login.Notification'); } else {$this->sendMessage();}
Еще раз простите акаянного, читаю форум мельком...