Skip to content

ASDAFF/nocaptcha-bitrix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

nocaptcha-bitrix

Краткое описание

Модуль CMS Bitrix для работы с сервисом Некапча Mail.Ru.

Некапча - это интеллектуальный сервис капчи, способный избавить большинство реальных пользователей от разгадывания рисунка капчи, вместе с тем не ухудшая защиту от спам-ботов. Сервис успешно используется как в наших внутренних проектах, так и на сайтах, не связанных с Mail.Ru.

Обратная связь: nocaptcha@corp.mail.ru

Установка

Перед использованием модуля необходимо зарегистрировать свой домен на сайте Некапчи.

  1. Копируем директорию nocaptcha в bitrix/modules.

  2. Устанавливаем модуль в административной панели в разделе Настройки > Настройки продукта > Модули.

  3. Настраиваем модуль в административной панели в разделе Настройки > Настройки продукта > Настройки модулей > Некапча Mail.Ru.

Настройка

Публичный и секретный ключ

Ключи для генерации скрипта Некапчи и проверки введенного кода. Создаются при регистрации домена на сайте Некапчи.

Использовать русскоязычный виджет для языков (через запятую)

Коды языков, для которых виджет будет отображаться на русском языке. Для всех других языков - на английском. Пример: ru,be,kz,uk.

Заменить стандартную капчу (требуется отредактировать шаблоны)

Позволяет заменить стандартную капчу CMS Bitrix на Некапчу Mail.Ru. Для полной замены требуется отредактировать шаблоны, где используется стандартная капча.

Использование

Добавление виджета

Виджет можно встроить в визуальном редакторе. Он расположен в списке компонентов Компоненты > Служебные > Виджет Некапчи Mail.Ru.

Другим способом добавления является вызов компонента из кода:

global $APPLICATION;
$APPLICATION->IncludeComponent("mailru:nocaptcha.widget", "");

Встраивание скрипта и настроек в head страницы, добавление контейнера происходит автоматически.

Доступные параметры компонента:

ID

ID контейнера. По умолчанию генерируется автоматически.

TABINDEX

tabindex поля для ввода кода. Требуется для корректной настройки последовательности переключения полей по TAB.

global $APPLICATION;
$APPLICATION->IncludeComponent("mailru:nocaptcha.widget", "",
                               array("TABINDEX" => "4"));

Шаблон компонента всегда используется стандартный и менять его нельзя.

Проверка введенного кода

Если виджет Некапчи встроен в форму корректно, то в обработчик передаются параметры captcha_id и captcha_value. Пример кода для проверки капчи:

CModule::IncludeModule("nocaptcha");
if (CNocaptcha::GetInstance()->Check($_REQUEST["captcha_id"],
                                     $_REQUEST["captcha_value"]) === true)
{
    // ок
}
else
{
    // введен неверный код
}

Если в настройках установлена замена стандартной капчи, то для проверки можно использовать стандартную функцию CaptchaCheckCode():

global $APPLICATION;
if ($APPLICATION->CaptchaCheckCode($_REQUEST["captcha_value"],
                                   $_REQUEST["captcha_id"]))
{
    // ок
}
else
{
    // введен неверный код
}

FAQ

Как отредактировать шаблон со стандартной капчей?

  1. Если шаблон системный, то копируем его в текущий шаблон сайта. Например, из bitrix/components/bitrix/system.auth.registration/templates/.default в bitrix/templates/my_site_template/components/bitrix/system.auth.registration/.default.

  2. В шаблоне заменяем верстку стандартной капчи на вызов компонента виджета Некапчи.

    Было:

    <?
    if ($arResult["USE_CAPTCHA"] == "Y")
    {
        ?>
        <tr>
            <td colspan="2"><b><?=GetMessage("CAPTCHA_REGF_TITLE")?></b></td>
        </tr>
        <tr>
            <td></td>
            <td>
                <input type="hidden" name="captcha_sid" value="<?=$arResult["CAPTCHA_CODE"]?>" />
                <img src="/bitrix/tools/captcha.php?captcha_sid=<?=$arResult["CAPTCHA_CODE"]?>" width="180" height="40" alt="CAPTCHA" />
            </td>
        </tr>
        <tr>
            <td><span class="starrequired">*</span><?=GetMessage("CAPTCHA_REGF_PROMT")?>:</td>
            <td><input type="text" name="captcha_word" maxlength="50" value="" /></td>
        </tr>
        <?
    }
    ?>

    Стало:

    <?
    if ($arResult["USE_CAPTCHA"] == "Y")
    {
        ?>
        <tr>
            <td colspan="2"><b><?=GetMessage("CAPTCHA_REGF_TITLE")?></b></td>
        </tr>
        <tr>
            <td><span class="starrequired">*</span></td>
            <td><? $APPLICATION->IncludeComponent("mailru:nocaptcha.widget"); ?></td>
        </tr>
        <?
    }
    ?>

Лицензия

CC0

По мере возможности в соответствии с законодательством, Mail.Ru отказался от всех авторских прав и смежных прав на модуль CMS Bitrix для работы с сервисом Некапча Mail.Ru

About

CMS Bitrix module for working with Nocaptcha Mail.Ru service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 89.4%
  • Python 10.6%