Регистрация без каптчи.

+13
1.92K
Дополним компонент "Регистрация", возможностью отключать вывод защитного кода из админ панели.

Иллюстрация

Опция имеет два состояния Да-показывать каптчу, Нет-регистрация без ввода кода каптчи.
Установка опции производится в:

Пользователи-Настройка профилей-Регистрация-Перейти к настройкам регистрации-Форма-Показывать каптчу- Да, Нет ?

Состояние записывается в таблицу конфигурации компонента cms_components.config: (Да) ask_secrcod=1, (Нет) ask_secrcod =0
Если опция "показывать каптчу" вкл ,cms_components.config ask_secrcod =1, проверяем на правильность ввода каптчи, и завершаем регистрацию.
Если опция "показывать каптчу" выкл ,cms_components.config ask_secrcod =0, то обходим проверку каптчи, и завершаем регистрацию.

Версия Instantcms 1.8
Шаблон _default_

Изменяемые файлы:
1-/components/registration/frontend.php
2-/admin/components/registration/backend.php
3-/templates/_default_/components/com_registration.tpl


Если эти файлы не изменялись, то достаточно заменить эти файлы файлами из архива.
Если изменения проводились, то изменения кода надо производить в ручную.

Скачать
----------------------------------------------------------------------------

1 — components/registration/frontend.php

Находим конфигурационные настройки компонента "Регистрация", по умолчанию .
это cтрока 62 комментарий в коде //config defaults.

Добавляем код в строку 68:

  1. if (!isset($cfg['ask_secrcod'])) { $cfg['ask_secrcod'] = 1; }
Установка конфигурационных настроек "Каптча", по умолчанию будет включена.

-----------------------------------------------------------------------------

Строка 185, комментарий в коде // Проверяем каптчу

Находим строки:

  1. $code = $inCore->request('code', 'str');
  2. if(!$code) { $msg .= $_LANG['TYPE_CAPTCHA'].'
  3. '; }
заменяем на код:
Строка 185, комментарий в коде // Проверяем каптчу

  1. if ($cfg['ask_secrcod']){
  2. $code = $inCore->request('code', 'str');
  3. if(!$code) { $msg .= $_LANG['TYPE_CAPTCHA'].'
  4. '; }
  5. }else {
  6. $code=false;
  7. }



2 — admin/components/registration/backend.php

Блок "загрузка конфиругации компонента — Регистрация ", комментаррии в коде //CONFIG DEFAULTS

Строка 57, добавляем код:

  1. if (!isset($cfg['ask_secrcod'])) { $cfg['ask_secrcod'] = 1; }
-------------------------------------------------------------------------------

Блок" Сохранение конфигурации компонента — Регистрация", комментарии в коде //SAVE CONFIG
Строка 84, вставляем код:

  1. $cfg['ask_secrcod'] = $inCore->request('ask_secrcod', 'int');
Далее ниже кода:
  1. <tr>
  2. <td><strong>Запрашивать дату рождения при регистрации:</strong> </td>
  3. <td>
  4. <input name="ask_birthdate" type="radio" value="1" <?php if (@$cfg['ask_birthdate']) { echo 'checked="checked"'; } ?>/> Да
  5. <input name="ask_birthdate" type="radio" value="0" <?php if (@!$cfg['ask_birthdate']) { echo 'checked="checked"'; } ?>/> Нет
  6. </td>
  7. </tr>
  8.  
Строка 273, вставляем код отображающий опцию "Установки каптчи":

  1. <tr>
  2. <td><strong>Запрашивать защитный код при регистрации:</strong> </td>
  3. <td>
  4. <input name="ask_secrcod" type="radio" value="1" <?php if (@$cfg['ask_secrcod']) { echo 'checked="checked"'; } ?>/> Да
  5. <input name="ask_secrcod" type="radio" value="0" <?php if (@!$cfg['ask_secrcod']) { echo 'checked="checked"'; } ?>/> Нет
  6. </td>
  7. </tr>
------------------------------------------------------------------------------------

3 — templates/_default_/components/com_registration.tpl

Устанавливаем вывод каптчи в шаблоне в зависимости от условия опции "показывать каптчу"

Cтрока 121 вставляем код:
  1. {if $cfg.ask_secrcod}
Строка 131 вставляем код :
  1. {/if}
Получится в результате так:
  1. {if $cfg.ask_secrcod}
  2. <tr>
  3. <td valign="top" class="">
  4. <div><strong>{$LANG.SECUR_SPAM}: </strong></div>
  5. <div><small>{$LANG.SECUR_SPAM_TEXT}</small></div>
  6. </td>
  7. <td valign="top" class="">
  8. {php}echo cmsPage::getCaptcha();{/php}
  9. </td>
  10. </tr>
  11. {/if}
--------------------------------------------------------------------------------------
Есть один нюанс.Если зарегистрироватся с каптчей, затем переключить опцию в положение без каптчи -Каптча ВЫКЛ.
То первый раз может, при регистрации может вывестись "Защитный код введен не верно".
В дальнейшем все работает нормально.
0
Князь Мышкин Князь Мышкин 11 лет назад #
Под кат бы спрятать ..
+1
11 лет назад #
Спасибо +

Еще от автора

SEO FAQ ICMS v 1.10.4
Полнофункциональное SEO решение для компонента "FAQ" ICMS v1.10.4
SEO board ICMS v 1.10.4
Полнофункциональное SEO решение для компонента "Доска обьявлений" ICMS v1.10.4
SEOBOX  сборка ICMS 1.10.4
Начата реализация SEO дистрибутива системы ICMS версии 1.10.4
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.