Капча ECC Plus для отзывов в Joomshopping

Сегодня рассмотрим процесс интеграции универсального плагина капчи EasyCalcCheck Plus (ECC Plus) в систему отзывов компонента интернет-магазина Joomshopping.

На официальной странице Joomshopping есть бесплатное решение в виде плагина для отображения капчи только в форме регистрации. Стоимость капчи для системы отзывов SimpleCaptcha - более 20 евро. В сети интернет есть несколько других решений, как платных, так и бесплатных, в том числе на базе стандартного плагина Joomla CAPTCHA - reCAPTCHA. Сегодня я хочу поделиться еще одним простым решением защиты от спама для системы отзывов компонента Joomshopping.

Воспользуемся универсальным плагином капчи EasyCalcCheck Plus и попробуем реализовать его интеграцию в систему отзывов компонента Joomshopping, поскольку автором плагина заявлена следующая возможность:

Функционал плагина позволяет выполнить пользовательский вызов капчи с помощью переменной {easycalccheckplus}, которая должна быть размещена между атрибутами формы в необходимой позиции.

Настройка плагина 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, поскольку функционал плагина предусматривает ее наличие в том числе. Просто получите ключи и внесите их в соответствующие поля настроек плагина.

500 символов осталось