本文整理汇总了PHP中question_usage_by_activity::add_question方法的典型用法代码示例。如果您正苦于以下问题:PHP question_usage_by_activity::add_question方法的具体用法?PHP question_usage_by_activity::add_question怎么用?PHP question_usage_by_activity::add_question使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类question_usage_by_activity
的用法示例。
在下文中一共展示了question_usage_by_activity::add_question方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: test_question
/**
* Run this test against a particular question.
* @param question_usage_by_activity $quba the useage to use when running the test.
* @param qtype_stack_question $question the question to test.
* @param int $seed the random seed to use.
* @return stack_question_test_result the test results.
*/
public function test_question(question_usage_by_activity $quba, qtype_stack_question $question, $seed)
{
$slot = $quba->add_question($question, $question->defaultmark);
$quba->start_question($slot, $seed);
$response = self::compute_response($question, $this->inputs);
$quba->process_action($slot, $response);
$results = new stack_question_test_result($this);
foreach ($this->inputs as $inputname => $notused) {
$inputstate = $question->get_input_state($inputname, $response);
// The _val below is a hack. Not all inputnames exist explicitly in
// the response, but the _val does. Some inputs, e.g. matrices have
// many entries in the response so none match $response[$inputname].
if (array_key_exists($inputname, $response)) {
$inputresponse = $response[$inputname];
} else {
$inputresponse = $response[$inputname . '_val'];
}
$results->set_input_state($inputname, $inputresponse, $inputstate->contentsdisplayed, $inputstate->status, $inputstate->errors);
}
foreach ($this->expectedresults as $prtname => $expectedresult) {
$result = $question->get_prt_result($prtname, $response, false);
$results->set_prt_result($prtname, $result);
}
return $results;
}
示例2: start_attempt_at_question
protected function start_attempt_at_question($question, $preferredbehaviour, $maxmark = null, $variant = 1)
{
$this->quba->set_preferred_behaviour($preferredbehaviour);
$this->slot = $this->quba->add_question($question, $maxmark);
$this->quba->start_question($this->slot, $variant);
}
示例3: quiz_start_attempt_built_on_last
/**
* Start a subsequent new attempt, in each attempt builds on last mode.
*
* @param question_usage_by_activity $quba this question usage
* @param object $attempt this attempt
* @param object $lastattempt last attempt
* @return object modified attempt object
*
*/
function quiz_start_attempt_built_on_last($quba, $attempt, $lastattempt) {
$oldquba = question_engine::load_questions_usage_by_activity($lastattempt->uniqueid);
$oldnumberstonew = array();
foreach ($oldquba->get_attempt_iterator() as $oldslot => $oldqa) {
$newslot = $quba->add_question($oldqa->get_question(), $oldqa->get_max_mark());
$quba->start_question_based_on($newslot, $oldqa);
$oldnumberstonew[$oldslot] = $newslot;
}
// Update attempt layout.
$newlayout = array();
foreach (explode(',', $lastattempt->layout) as $oldslot) {
if ($oldslot != 0) {
$newlayout[] = $oldnumberstonew[$oldslot];
} else {
$newlayout[] = 0;
}
}
$attempt->layout = implode(',', $newlayout);
return $attempt;
}
示例4: add_questions_to_quba
/**
* add the questions to the question usage
* This is called by the question_attmept class on construct of a new attempt
*
* @param \question_usage_by_activity $quba
*
* @return array
*/
public function add_questions_to_quba(\question_usage_by_activity $quba)
{
// we need the questionids of our questions
$questionids = array();
foreach ($this->qbankOrderedQuestions as $qbankquestion) {
/** @var activequiz_question $qbankquestion */
if (!in_array($qbankquestion->getQuestion()->id, $questionids)) {
$questionids[] = $qbankquestion->getQuestion()->id;
}
}
$questions = question_load_questions($questionids);
// loop through the ordered question bank questions and add them to the quba
// object
$attemptlayout = array();
foreach ($this->qbankOrderedQuestions as $qbankquestion) {
$questionid = $qbankquestion->getQuestion()->id;
$q = \question_bank::make_question($questions[$questionid]);
$attemptlayout[$qbankquestion->getId()] = $quba->add_question($q, $qbankquestion->getPoints());
}
// start the questions in the quba
$quba->start_all_questions();
/**
* return the attempt layout which is a set of ids that are the slot ids from the question engine usage by activity instance
* these are what are used during an actual attempt rather than the questionid themselves, since the question engine will handle
* the translation
*/
return $attemptlayout;
}