本文整理匯總了PHP中question_usage_by_activity::start_question_based_on方法的典型用法代碼示例。如果您正苦於以下問題:PHP question_usage_by_activity::start_question_based_on方法的具體用法?PHP question_usage_by_activity::start_question_based_on怎麽用?PHP question_usage_by_activity::start_question_based_on使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類question_usage_by_activity
的用法示例。
在下文中一共展示了question_usage_by_activity::start_question_based_on方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: 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;
}