Ролевое задание по завершению Викторины

Я хочу назначить пользователю роль при успешном завершении викторины, чтобы можно было назначить значок на основе роли.

Вот что я попробовал: 1. В модуле Quiz, выбрав Параметры в Edit Quiz, добавил Assign Action of Node > сохранить содержимое 2. Создал VBO для Quiz с контекстным параметром (Quiz) NID и UID пользователя 3. Попытался назвать это VBO как условие

Проблемы: 1. При назначении этого действия, я получаю сообщение об ошибке в Quiz, что вам нужно начать заново и не вижу, что содержимое действительно сохраняется правильно (показывает результаты неправильно) 2. Когда я пытаюсь вызвать VBO из правила, это дает мне ошибку обработчика

Вопросы: 1. Правильный ли подход или есть лучший способ сделать это? 2. Если подход хорош, любые очевидные ошибки я делаю.

Получил этот подход с сайта drupal после долгих поисков - https://www.drupal.org/node/1149930

1 ответ

Я рекомендую использовать для этого викторину:

Прочитайте это: http://api.dlcdev.com/quiz/doc/html/group__quiz__public.html

Quiz имеет хук с именем hook_quiz_finished, который запускается после отправки последнего вопроса.

Вы должны реализовать свой собственный модуль и использовать его следующим образом:

function yourmodulename_quiz_finished($quiz, $score, $session_data) {
  //$score contains the final score of the quiz
  //$quiz is the object that contains the quiz "pass rate" that you have to compare with score
  //$session_data gives you additional information that you can use to get the uid yo assign the new role
}

Надеюсь, поможет.

С уважением.

Другие вопросы по тегам