[Решено] Как сделать регистрацию по условию правильного ответа на опрос?

Главные вкладки

Аватар пользователя GDI@drupal.org GDI@drupal.org 19 сентября 2009 в 15:58

Здравствуйте,
у меня появилась задача сделать условную регистрацию пользователей на сайте. Т.е. чтобы зарегистрироваться пользователю будет предложено заполнить тест и по результатам выполнения теста разрешить регистрацию или отклонить. В тесте будет 10 вопросов с вариантами ответов, если правильно отвечено, к примеру, на 7 вопросов, то регистрация разрешается.

Подскажите, есть ли готовые модули для выполнения такой задачи или натолкните на путь решения.

UPD. Мой модуль для решения этой задачи http://drupal.org/project/quizreg

Комментарии

Аватар пользователя Ромка Ромка 19 сентября 2009 в 20:22

Готовых модулей не знаю, но задачка легко решается своим модулем. На [ru-api=hook_user]hook_user[/ru-api] вешается проверка значения определенной переменной в сессии, если её нет или она равна FALSE, то вместо формы регистрации показываешь другую форму с тестом.

Аватар пользователя GDI@drupal.org GDI@drupal.org 19 сентября 2009 в 20:31

Вот нашел модуль Agreement, который как раз делает такое перенаправление. Насколько я понял, можно сделать перенаправление на любой URL. В принципе это решает часть задачи.
Тогда возникает следующий вопрос. Как сделать страницу с тестом, который случайным образом выбирает 10 вопросов из списка вопросов и подсчитывает, результат?

Аватар пользователя Dock@drupal.org Dock@drupal.org 19 сентября 2009 в 21:22

Можно чуть по другому делать. Регистрировать тех, кто хочет, но после регистрации присваивать пользователям "немощную" роль. Потом давать им тест и на основе его присваивать другую роль

Аватар пользователя Dan Dan 20 сентября 2009 в 4:42

А если использовать обычную капчу, но написать субмодуль с вопросами и повесить это на регистрацию?

Аватар пользователя GDI@drupal.org GDI@drupal.org 20 сентября 2009 в 13:52

Нашел 2 модуля Quiz и Classroom которые позволяют сделать тесты с подсчетом результатов.
Про регистрацию с "немощной" ролью тоже думал, оставлю это как запасной вариант.

Про капчу и субмодуль, честно, говоря, не понял, но мысль написать модуль для этого была, но я не насколько хорошо знаю API Друпала, да и модули никогда не писал. А в процессе обдумывания пришла в голову новая идея, использовать Quiz и/или Classroom еще и для создания обучающих программ, тренингов на сайте.

Аватар пользователя Dan Dan 20 сентября 2009 в 16:29

У капчи есть субмодули, которые реализуют различные виды проверок: показ на картинке цифр и букв, арифметика и т.д. Каждый из этих модулей можно включить и привязать к различным формам, например показ картинки при отправке коммента или при регистрации.
Вот я вам и предлагаю посмотреть как сделаны эти модули и написать нечто подобное. Я думаю там достаточно просто всё - необходимо наверняка создать буквально 3-4 функции, а привязку в системе будет делать сам модуль CAPTCHA.

Аватар пользователя GDI@drupal.org GDI@drupal.org 10 ноября 2015 в 11:46

Решил проблему путем создания собственного модуля, назвал его quizreg (quiz for register).Попробую разместить его на drupal.org, сейчас жду ответа на запрос о доступе на CVS.

Аватар пользователя Onza Onza 4 декабря 2009 в 5:57

<a href="mailto:GDI@drupal.org">GDI@drupal.org</a> wrote:
За чем следить? Модуль успешно работает на сайте, юзеры на drupal.org нашли баг, он уже исправлен.

GDI@drupal.org, я, как и многие здесь, отслеживаю полезные мне топики через свой тракер Smile
Вам большое спасибо за полезную весчь.

Аватар пользователя GDI@drupal.org GDI@drupal.org 25 июня 2012 в 19:50

MGMaster wrote:
А этот модуль считает количество попыток? Можно их ограничить?
Данный модуль лишь запускает выбранный тест при переходе по ссылке user/register, вся остальная функциональность зависит от настроек теста в Quiz. Количество попыток можно ограничить, смотрите в настройки конкретного теста.

Аватар пользователя GDI@drupal.org GDI@drupal.org 6 июля 2012 в 0:13

У меня, к сожалению, нет сайтов на 7ке. Если кто-то возьмется портировать этот модуль под 7ку, то помогу разобраться с функционалом. Там всего несколько функций, так что не думаю, что это будет сложно.