1

Тема: Плагин "Отзывы"

Добрый день. Существует ли плагин отзывов? Чтобы люди сами на сайте оставляли отзывы

Поделиться

2

Re: Плагин "Отзывы"

http://getsimplecms.ru/plaginy-dlya-get … back-lite/

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

3

Re: Плагин "Отзывы"

Как можно реализовать сайт-отзовик? Чтобы юзеры сами вводили название компании, выбирали для неё категорию и т.п.

Поделиться

4

Re: Плагин "Отзывы"

den пишет:

Как можно реализовать сайт-отзовик? Чтобы юзеры сами вводили название компании, выбирали для неё категорию и т.п.

Выскажу исключительно свое частное мнение (меня поправят при необходимости).
"Сайт-отзовик" предполагает большое количество страниц. Возможно, очень большое. Скорее всего, использовать GetSimple CMS для такой задачи - не самая лучшая затея. Может посмотреть в сторону того же wordpress?

Поделиться

5

Re: Плагин "Отзывы"

Не GetSimple и wordpress, есть специальные cms, причем хорошие.

Сайт ufopera

Поделиться

6 (2020-01-30 05:05:56 отредактировано doctorwho)

Re: Плагин "Отзывы"

Всем привет. Для данного плагина в целях защиты от спам-роботов можно реализовать Google ReCAPTCHA V2 (бесплатная служба Google). Это простой виджет с полем "Я не робот", который проверяет пользователя, после чего тот сможет отправить данные (отзыв). Робот это сделать не может.
Сделать это можно следующим образом:
1. Для начала нужно зарегистрировать рекапчу к Вашему домену и выбрать тип (V2). Зайдите по адресу h**ps://www.google.com/recaptcha/admin/. Естественно, вы должны быть там зарегистрированы (аккаунт Google).
https://blog.maxgraph.ru/wp-content/uploads/2017/12/2017-12-20_12-03-50.png
Вы получите специальный sitekey (он то нам и нужен!) и инструкцию по его внедрению на страницу.
Теперь занимаемся непосредственно GetSimple. Я делал так:
2. В файле темы GS header.inc.php между <head> и </head> прописал путь к "гугловскому" скрипту со следующими параметрами:

<script src="https://www.google.com/recaptcha/api.js?onload=reCaptchaOnLoadCallback&render=explicit"></script>    

3. В плагине "feedback" (отзывы) работаем с двумя файлами:
/plugins/feedback/template/add_entry.php
/plugins/feedback/lang/ru_RU.php (языковый файл плагина)
В add_entry.php ищем в форме <div> с полем сообщения, после него цепляем еще один <div>, в котором разместим сам виджет. Это надо сделать до контейнера с кнопкой "Отправить". У меня следующий код:

<!---GOOGLE RECAPTCHA--->
<div class="uk-width-1-1 form-captcha">
<div class="label uk-margin-small">
<label class="uk-text-bold"><?php i18n('feedback/NOTBOT'); ?><span class="uk-text-danger">*</span></label>
</div>
<div class="g-recaptcha" data-sitekey="xxxxxxxxxxx специальный sitekey (он у вас уже есть) xxxxx"></div>
</div>
<!--END GOOGLE RECAPTCHA--->

Обратите внимание на кусок

<?php i18n('feedback/NOTBOT'); ?>

NOTBOT мы пропишем в языковом файле.
Обратите внимание! В самом первом <div> кода выше есть класс form-captcha - это очень важный момент, не упустите его, т.к. он нужен для java-скрипта (скрипт ниже).
Далее после закрывающего тега </form> мы вставляем скрипт:

<!--Google ReCaptcha Script-->
<script> 
function reCaptcha(selector) {
var $wg = $(selector); // Обращаемся к селектору (описан ниже в "вызове", в нашем случае это form-captcha)
$wg.each(function() { // Делаем проход по этому селектору
var id = randomString(10), // Задаем переменную для id (рандомная строка, ее функция ниже)
$form = $(this).closest('form'); // Проходим по всей форме
$form.find('[type="submit"]').prop('disabled', true); // Изначально даем кнопке disabled (нельзя нажать)
$(this).append($('<div class="g-recaptcha" id="' + id + '"></div>')); // Добавляем в form-captcha еще блок с рандомным id
grecaptcha.render(id, { // Используем функции самой рекапчи
sitekey: $(this).find('.g-recaptcha').data('sitekey') || '', // Находим элемент с нашим дата-атрибутом
callback: function(response) {
if (!!response) { 
$form.find('[type="submit"]').prop('disabled', false); // Если условие (нажатие галочки) выполнено, убираем disabled у кнопки
}
}
});
});
};
// Функция рандомной строки как id
function randomString(length) {
 var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split(''),
 result = '';
 length = !length ? Math.floor(Math.random() * chars.length) : length;
 for (var i = 0; i < length; i++) {
 result += chars[Math.floor(Math.random() * chars.length)];
 }
 return result;
 }
//Вызов  
var reCaptchaOnLoadCallback = function() {
reCaptcha('.form-captcha');
};
</script>
<!--End Google ReCaptcha Script-->

У кнопки отправки в форме обязательно посмотрите атрибут type="submit". Он конечно есть в плагине, но чем черт не шутит. Скрипт выше блокирует/разблокирует эту кнопку именно по этому атрибуту.
Прилагаю скрин, как это выглядит в редакторе:
http://joxi.ru/82Q6a7aHy43MBA.jpg
Сохраняем файл и грузим на сервер.
4. Теперь правки в языковом файле ru_RU.php (аналогичные изменения рекомендую проделать в других языковых файлах, к примеру в "en_US.php")
Тут ничего сложного, нам надо прописать новое поле с фразой (NOTBOT). Скрин ниже:
http://joxi.ru/Vm6PXbXCjK09ZA.jpg
Сохраняем и заливаем по месту.
Теперь наша форма отправки отзыва защищена от спам-роботов. Пока живой пользователь не кликнет по чекбоксу "Я не робот", кнопка отправки не будет активна.
http://joxi.ru/5mdJEWETeJ1MDA.jpg
Некоторые скажут, что спам-автосообщения и так не попадут на страницу отзывов, поскольку в админке есть модерация отзывов. Согласен, это так. Но, поверьте, если ваш сайт попадет в базу спам-ботов, их в админке будет столько, что можно вспотеть (лично убедился). Устанете чистить хлам. А описанное выше вам реально поможет и упростит жизнь.
PS: Кстати, для тех кто в теме: ненавистные "Г-жа" и "Г-н" убираются в этих же файлах. Там несложно разобраться как это сделать. Лайфхак: в языковом файле сразу замените фразу "написал" на "пишет". А то как то звучит странно - "Анастасия Петрова из г. Псков написал: ......". Ну это я уже юморить начал...)))
Всем добра и удачи!

Все это рок-н-ролл...

Поделиться

7

Re: Плагин "Отзывы"

плагин готов к тестированию https://getsimplecms.ru/plaginy-dlya-ge … lite/#feed
публичный ключ Google reCaptcha V2 https://www.google.com/recaptcha/admin/ пропишите в первой строке языкового файла, добавить поле в настройки плагина у меня не получилось
секретный ключ в данном плагине не нужен, так как работает только JS
Рекомендую все отплюсовать разработчика выше smile

пример работы плагина http://otzyv.getsimplecms.ru/otzyvy/

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться