示例#1
0
                        if ($requesttype == 'postanswer' || $requesttype == 'getresults' || $requesttype == 'teacherrejoin') {
                            realtimequiz_send_results($quizid);
                        } else {
                            if ($requesttype == 'nextquestion') {
                                $clientquestionnum = required_param('currentquestion', PARAM_INT);
                                $questionid = $DB->get_field('realtimequiz', 'currentquestion', array('id' => $quizid));
                                $questionnum = $DB->get_field('realtimequiz_question', 'questionnum', array('id' => $questionid));
                                if ($clientquestionnum != $questionnum) {
                                    realtimequiz_send_results($quizid);
                                } else {
                                    $questionnum++;
                                    realtimequiz_goto_question($context, $quizid, $questionnum);
                                }
                            } else {
                                realtimequiz_send_error(get_string('unknownrequest', 'realtimequiz') . $requesttype . '\'');
                            }
                        }
                    }
                    break;
                case REALTIMEQUIZ_STATUS_FINALRESULTS:
                    // Showing the final totals, etc
                    realtimequiz_send_final_results($quizid);
                    break;
                default:
                    realtimequiz_send_error(get_string('incorrectstatus', 'realtimequiz') . $status . '\'');
                    break;
            }
        }
    }
}
realtimequiz_end_response();
示例#2
0
function realtimequiz_goto_question($context, $quizid, $questionnum)
{
    global $DB;
    if (has_capability('mod/realtimequiz:control', $context)) {
        $quiz = $DB->get_record('realtimequiz', array('id' => $quizid));
        // Update the question statistics:
        $quiz->classresult += $quiz->questionresult;
        $quiz->questionresult = 0;
        $questionid = $DB->get_field('realtimequiz_question', 'id', array('quizid' => $quizid, 'questionnum' => $questionnum));
        if ($questionid) {
            $quiz->currentquestion = $questionid;
            $quiz->status = REALTIMEQUIZ_STATUS_PREVIEWQUESTION;
            $quiz->nextendtime = time() + 2;
            // Give everyone a chance to get the question before starting
            $DB->update_record('realtimequiz', $quiz);
            // FIXME - not update all fields?
            realtimequiz_send_question($quizid, $context, true);
        } else {
            // Assume we have run out of questions
            $quiz->status = REALTIMEQUIZ_STATUS_FINALRESULTS;
            $DB->update_record('realtimequiz', $quiz);
            // FIXME - not update all fields?
            realtimequiz_send_final_results($quizid);
        }
    } else {
        realtimequiz_send_error(get_string('notauthorised', 'realtimequiz'));
    }
}