$quba->set_preferred_behaviour($options->behaviour); $slot = $quba->add_question($question, $options->maxmark); if ($options->variant) { $options->variant = min($maxvariant, max(1, $options->variant)); } else { $options->variant = rand(1, $maxvariant); } $quba->start_question($slot, $options->variant); $transaction = $DB->start_delegated_transaction(); question_engine::save_questions_usage_by_activity($quba); $transaction->allow_commit(); } $options->behaviour = $quba->get_preferred_behaviour(); $options->maxmark = $quba->get_question_max_mark($slot); // Create the settings form, and initialise the fields. $optionsform = new preview_options_form(question_preview_form_url($question->id, $context, $previewid), array('quba' => $quba, 'maxvariant' => $maxvariant)); $optionsform->set_data($options); // Process change of settings, if that was requested. if ($newoptions = $optionsform->get_submitted_data()) { // Set user preferences. $options->save_user_preview_options($newoptions); if (!isset($newoptions->variant)) { $newoptions->variant = $options->variant; } if (isset($newoptions->saverestart)) { restart_preview($previewid, $question->id, $newoptions, $context); } } // Prepare a URL that is used in various places. $actionurl = question_preview_action_url($question->id, $quba->get_id(), $options, $context); // Process any actions from the buttons at the bottom of the form.
$options->variant = min($maxvariant, max(1, $options->variant)); } else { $options->variant = rand(1, $maxvariant); } $quba->start_question($slot, $options->variant); $transaction = $DB->start_delegated_transaction(); question_engine::save_questions_usage_by_activity($quba); $transaction->allow_commit(); } $options->behaviour = $quba->get_preferred_behaviour(); $options->maxmark = $quba->get_question_max_mark($slot); // Create the settings form, and initialise the fields. $optionsform = new preview_options_form(question_preview_form_url($question->id, $context), array('quba' => $quba, 'maxvariant' => $maxvariant)); $optionsform->set_data($options); // Process change of settings, if that was requested. if ($newoptions = $optionsform->get_submitted_data()) { // Set user preferences. $options->save_user_preview_options($newoptions); if (!isset($newoptions->variant)) { $newoptions->variant = $options->variant; } restart_preview($previewid, $question->id, $newoptions, $context); } // Prepare a URL that is used in various places. $actionurl = question_preview_action_url($question->id, $quba->get_id(), $options, $context);