本文整理匯總了PHP中question_attempt::set_number_in_usage方法的典型用法代碼示例。如果您正苦於以下問題:PHP question_attempt::set_number_in_usage方法的具體用法?PHP question_attempt::set_number_in_usage怎麽用?PHP question_attempt::set_number_in_usage使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類question_attempt
的用法示例。
在下文中一共展示了question_attempt::set_number_in_usage方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: load_from_records
/**
* Create a question_attempt_step from records loaded from the database.
*
* For internal use only.
*
* @param Iterator $records Raw records loaded from the database.
* @param int $questionattemptid The id of the question_attempt to extract.
* @return question_attempt The newly constructed question_attempt_step.
*/
public static function load_from_records($records, $questionattemptid, question_usage_observer $observer, $preferredbehaviour)
{
$record = $records->current();
while ($record->questionattemptid != $questionattemptid) {
$record = $records->next();
if (!$records->valid()) {
throw new coding_exception("Question attempt {$questionattemptid} not found in the database.");
}
$record = $records->current();
}
try {
$question = question_bank::load_question($record->questionid);
} catch (Exception $e) {
// The question must have been deleted somehow. Create a missing
// question to use in its place.
$question = question_bank::get_qtype('missingtype')->make_deleted_instance($record->questionid, $record->maxmark + 0);
}
$qa = new question_attempt($question, $record->questionusageid, null, $record->maxmark + 0);
$qa->set_database_id($record->questionattemptid);
$qa->set_number_in_usage($record->slot);
$qa->variant = $record->variant + 0;
$qa->minfraction = $record->minfraction + 0;
$qa->set_flagged($record->flagged);
$qa->questionsummary = $record->questionsummary;
$qa->rightanswer = $record->rightanswer;
$qa->responsesummary = $record->responsesummary;
$qa->timemodified = $record->timemodified;
$qa->behaviour = question_engine::make_behaviour($record->behaviour, $qa, $preferredbehaviour);
$i = 0;
while ($record && $record->questionattemptid == $questionattemptid && !is_null($record->attemptstepid)) {
$qa->steps[$i] = question_attempt_step::load_from_records($records, $record->attemptstepid);
if ($i == 0) {
$question->apply_attempt_state($qa->steps[0]);
}
$i++;
if ($records->valid()) {
$record = $records->current();
} else {
$record = false;
}
}
$qa->observer = $observer;
return $qa;
}
示例2: add_question
/**
* Add another question to this usage.
*
* The added question is not started until you call {@link start_question()}
* on it.
*
* @param question_definition $question the question to add.
* @param number $maxmark the maximum this question will be marked out of in
* this attempt (optional). If not given, $question->defaultmark is used.
* @return int the number used to identify this question within this usage.
*/
public function add_question(question_definition $question, $maxmark = null)
{
$qa = new question_attempt($question, $this->get_id(), $this->observer, $maxmark);
if (count($this->questionattempts) == 0) {
$this->questionattempts[1] = $qa;
} else {
$this->questionattempts[] = $qa;
}
$qa->set_number_in_usage(end(array_keys($this->questionattempts)));
$this->observer->notify_attempt_added($qa);
return $qa->get_slot();
}