
Капча ECC Plus для отзывов в Joomshopping
Сегодня рассмотрим процесс интеграции универсального плагина капчи EasyCalcCheck Plus (ECC Plus) в систему отзывов компонента интернет-магазина Joomshopping.
На официальной странице Joomshopping есть бесплатное решение в виде плагина для отображения капчи только в форме регистрации. Стоимость капчи для системы отзывов SimpleCaptcha - более 20 евро. В сети интернет есть несколько других решений, как платных, так и бесплатных, в том числе на базе стандартного плагина Joomla CAPTCHA - reCAPTCHA. Сегодня я хочу поделиться еще одним простым решением защиты от спама для системы отзывов компонента Joomshopping.
Воспользуемся универсальным плагином капчи EasyCalcCheck Plus и попробуем реализовать его интеграцию в систему отзывов компонента Joomshopping, поскольку автором плагина заявлена следующая возможность:
Функционал плагина позволяет выполнить пользовательский вызов капчи с помощью переменной {easycalccheckplus}, которая должна быть размещена между атрибутами формы в необходимой позиции.
Настройка плагина EasyCalcCheck Plus
- Страница плагина: EasyCalcCheck Plus
- Страница в JED: EasyCalcCheck Plus (Viktor Vogel)
- Русская локализация: EasyCalcCheck Plus
После установки плагина необходимо выполнить небольшую настройку. В качестве защиты от спама более эффективно использовать Арифметическое уравнение (вкладка Общие настройки). Для усложнения операции вычисления можно включить параметры Отрицательный результат, Числа в виде слов и установить следующие значения для параметров Оператор уравнения → В случайном порядке и Количество операндов → 3.
На вкладке Расширения для параметра Пользовательский вызов капчи установите значение Да.
Интеграция плагина в Joomshopping
Откройте components/com_jshopping/templates/ваш_шаблон/product/review.php и найдите код:
<?php if (!$this->config->hide_product_rating){?>
<div class = "row-fluid">
<div class = "span3">
<?php print _JSHOP_REVIEW_MARK_PRODUCT?>
</div>
<div class = "span9">
<?php for($i=1; $i<=$this->stars_count*$this->parts_count; $i++){?>
<input name="mark" type="radio" class="star {split:<?php print $this->parts_count?>}" value="<?php print $i?>" <?php if ($i==$this->stars_count*$this->parts_count){?>checked="checked"<?php }?>/>
<?php } ?>
</div>
</div>
<?php }?>
Добавьте следующий код после найденных строк:
<div class = "row-fluid">
<div class = "ecc-plus">
{easycalccheckplus}
</div>
</div>
Результат интеграции плагина можно увидеть на скриншоте #1. Однако, визуально капча выглядит "инородным телом" в данном блоке. Попробуем исправить ситуацию, придерживаясь небольшого плана:
- Строку Решите уравнение для универсальности переименовать и перенести в левый столбец,
- Поле для ответа разместить под арифметическим уравнением,
- Все изменения реализовать таким образом, чтобы не повторять процедуру после обновления плагина.
Перейдите в админпанели в Расширения → Языки → Переопределение констант → Сайт, выберите из выпадающего списка Русский (Россия) - Сайт, добавьте новую константу PLG_ECC_SPAMCHECK_JOOMSOPPING = Защита от спама и переопределите языковую константу плагина PLG_ECC_SPAMCHECK = (оставьте поле текста пустым, без пробела).
Откройте components/com_jshopping/templates/ваш_шаблон/product/review.php и замените внесенный выше код на:
<div class = "row-fluid">
<div class = "span3">
<?php print JText::_('PLG_ECC_SPAMCHECK_JOOMSOPPING');?>
</div>
<div class = "span9">
{easycalccheckplus}
</div>
</div>
Откройте основной CSS-файл вашего шаблона и в конец файла добавьте следующий код (пример):
/* EasyCalcCheck Plus */
#easycalccheckplus {margin-top: 10px}
#easycalccheckplus label {
display: block;
font-weight: 300 !important;
margin-bottom: 10px;
}
Обратите внимание, что CSS-стили индивидуальны для каждого сайта и могут не соответствовать стилям вашего шаблона.
Результат интеграции плагина после внесенных корректировок можно увидеть на скриншоте #2. Повторять процедуру внесения изменений после обновления плагина нет необходимости - файлы плагина не редактировались.
В качестве заключения
Преимущество использования плагина EasyCalcCheck Plus в компонентах Joomla и сторонних расширениях заключается в реализации однотипной капчи во всех формах сайта. На некоторых сайтах в форме регистрации используется reCAPTCHA, в форме обратной связи - капча по типу "введите символы на изображении", в системе комментариев JComments или гостевой книги Phoca Guestbook - встроенная капча и, например, в компоненте Joomshopping - другое платное решение капчи. Едва ли такое разнообразие защиты от спама выглядит привлекательно для посетителей сайта.
В данном материале приведен пример интеграции плагина в систему отзывов Joomshopping. Однако, так же просто можно интегрировать плагин, например, в форму внесения данных на странице оформления покупки (в корзине). В таком случае изменения необходимо вносить в файле components/com_jshopping/templates/ваш_шаблон/checkout/adress.php. Или вообще вынести блок капчи на страницу завершения оформления покупки (страница подтверждения заказа). В таком случае изменения необходимо вносить в файле components/com_jshopping/templates/ваш_шаблон/checkout/previewfinish.php.
Если вопрос потенциального спама вас не волнует или его масштабы пока незначительны, можно упростить задачу для посетителей сайта и использовать вместо арифметического уравнения параметр плагина Проверочный вопрос (пример реализации на скриншоте #3). Обратите внимание, что ответ на проверочный вопрос зависит от регистра символов. Таким образом, вопрос и ответ на него должны быть простыми для посетителей сайта и одновременно сложными для спам-ботов.
И, наконец, в качестве защиты от спама можно использовать reCAPTCHA, поскольку функционал плагина предусматривает ее наличие в том числе. Просто получите ключи и внесите их в соответствующие поля настроек плагина.