Ролевое задание по завершению Викторины
Я хочу назначить пользователю роль при успешном завершении викторины, чтобы можно было назначить значок на основе роли.
Вот что я попробовал: 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
}
Надеюсь, поможет.
С уважением.