$counts[$behaviour] = 0; } $needed[$behaviour] = $counts[$behaviour] > 0 || $pluginmanager->other_plugins_that_require('qbehaviour_' . $behaviour); $archetypal[$behaviour] = question_engine::is_behaviour_archetypal($behaviour); } foreach ($counts as $behaviour => $count) { if (!array_key_exists($behaviour, $behaviours)) { $counts['missing'] += $count; } } $needed['missing'] = true; // Work of the correct sort order. $config = get_config('question'); $sortedbehaviours = array(); foreach ($behaviours as $behaviour => $notused) { $sortedbehaviours[$behaviour] = question_engine::get_behaviour_name($behaviour); } if (!empty($config->behavioursortorder)) { $sortedbehaviours = question_engine::sort_behaviours($sortedbehaviours, $config->behavioursortorder, ''); } if (!empty($config->disabledbehaviours)) { $disabledbehaviours = explode(',', $config->disabledbehaviours); } else { $disabledbehaviours = array(); } // Process actions ============================================================ // Disable. if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey()) { if (!isset($behaviours[$disable])) { print_error('unknownbehaviour', 'question', $thispageurl, $disable); }
/** * Search question behaviours for the specified string * * @param string $query The string to search for in question behaviours * @return array */ public function search($query) { global $CFG; if ($result = parent::search($query)) { return $result; } $found = false; $textlib = textlib_get_instance(); require_once $CFG->dirroot . '/question/engine/lib.php'; foreach (get_plugin_list('qbehaviour') as $behaviour => $notused) { if (strpos($textlib->strtolower(question_engine::get_behaviour_name($behaviour)), $query) !== false) { $found = true; break; } } if ($found) { $result = new stdClass(); $result->page = $this; $result->settings = array(); return array($this->name => $result); } else { return array(); } }
$headtags = question_engine::initialise_js() . $quba->render_question_head_html($slot); $PAGE->set_title($title); $PAGE->set_heading($title); echo $OUTPUT->header(); // Start the question form. echo '<form method="post" action="' . $actionurl . '" enctype="multipart/form-data" id="responseform">', "\n"; echo '<input type="hidden" name="sesskey" value="' . sesskey() . '" />', "\n"; echo '<input type="hidden" name="slots" value="' . $slot . '" />', "\n"; // Output the question. echo $quba->render_question($slot, $options, $displaynumber); echo '<p class="notifytiny">' . get_string('behaviourbeingused', 'question', question_engine::get_behaviour_name( $quba->get_question_attempt($slot)->get_behaviour_name())) . '</p>'; // Finish the question form. echo '<div id="previewcontrols" class="controls">'; echo '<input type="submit" name="restart"' . $restartdisabled . ' value="' . get_string('restart', 'question') . '" />', "\n"; echo '<input type="submit" name="fill"' . $filldisabled . ' value="' . get_string('fillincorrect', 'question') . '" />', "\n"; echo '<input type="submit" name="finish"' . $finishdisabled . ' value="' . get_string('submitandfinish', 'question') . '" />', "\n"; echo '<input type="hidden" name="scrollpos" id="scrollpos" value="" />'; echo '</div>'; echo '</form>'; // Display the settings form. $optionsform->display();
$filldisabled = array(); if ($quba->get_question_state($slot)->is_finished()) { $finishdisabled = array('disabled' => 'disabled'); $filldisabled = array('disabled' => 'disabled'); } // If question type cannot give us a correct response, disable this button. if (is_null($quba->get_correct_response($slot))) { $filldisabled = array('disabled' => 'disabled'); } if (!$previewid) { $restartdisabled = array('disabled' => 'disabled'); } // Prepare technical info to be output. $qa = $quba->get_question_attempt($slot); $technical = array(); $technical[] = get_string('behaviourbeingused', 'question', question_engine::get_behaviour_name($qa->get_behaviour_name())); $technical[] = get_string('technicalinfominfraction', 'question', $qa->get_min_fraction()); $technical[] = get_string('technicalinfomaxfraction', 'question', $qa->get_max_fraction()); $technical[] = get_string('technicalinfovariant', 'question', $qa->get_variant()); $technical[] = get_string('technicalinfoquestionsummary', 'question', s($qa->get_question_summary())); $technical[] = get_string('technicalinforightsummary', 'question', s($qa->get_right_answer_summary())); $technical[] = get_string('technicalinforesponsesummary', 'question', s($qa->get_response_summary())); $technical[] = get_string('technicalinfostate', 'question', '' . $qa->get_state()); // Start output. $title = get_string('previewquestion', 'question', format_string($question->name)); $headtags = question_engine::initialise_js() . $quba->render_question_head_html($slot); $PAGE->set_title($title); $PAGE->set_heading($title); echo $OUTPUT->header(); // Start the question form. echo html_writer::start_tag('form', array('method' => 'post', 'action' => $actionurl, 'enctype' => 'multipart/form-data', 'id' => 'responseform'));
$finishdisabled = ' disabled="disabled"'; $filldisabled = ' disabled="disabled"'; } if (!$previewid) { $restartdisabled = ' disabled="disabled"'; } // Output $title = get_string('previewquestion', 'question', format_string($question->name)); $headtags = question_engine::initialise_js() . $quba->render_question_head_html($slot); $PAGE->set_title($title); $PAGE->set_heading($title); echo $OUTPUT->header(); // Start the question form. echo '<form method="post" action="' . $actionurl . '" enctype="multipart/form-data" id="responseform">', "\n"; echo '<input type="hidden" name="sesskey" value="' . sesskey() . '" />', "\n"; echo '<input type="hidden" name="slots" value="' . $slot . '" />', "\n"; // Output the question. echo $quba->render_question($slot, $options, $displaynumber); echo '<p class="notifytiny">' . get_string('behaviourbeingused', 'question', question_engine::get_behaviour_name($quba->get_question_attempt($slot)->get_behaviour_name())) . '</p>'; // Finish the question form. echo '<div id="previewcontrols" class="controls">'; echo '<input type="submit" name="restart"' . $restartdisabled . ' value="' . get_string('restart', 'question') . '" />', "\n"; echo '<input type="submit" name="fill"' . $filldisabled . ' value="' . get_string('fillincorrect', 'question') . '" />', "\n"; echo '<input type="submit" name="finish"' . $finishdisabled . ' value="' . get_string('submitandfinish', 'question') . '" />', "\n"; echo '<input type="hidden" name="scrollpos" id="scrollpos" value="" />'; echo '</div>'; echo '</form>'; // Display the settings form. $optionsform->display(); $PAGE->requires->js_init_call('M.core_question_preview.init', null, false, array('name' => 'core_question_preview', 'fullpath' => '/question/preview.js', 'requires' => array('base', 'dom', 'event-delegate', 'event-key', 'core_question_engine'), 'strings' => array(array('closepreview', 'question')))); echo $OUTPUT->footer();
$finishdisabled = array('disabled' => 'disabled'); $filldisabled = array('disabled' => 'disabled'); } // If question type cannot give us a correct response, disable this button. if (is_null($quba->get_correct_response($slot))) { $filldisabled = array('disabled' => 'disabled'); } if (!$previewid) { $restartdisabled = array('disabled' => 'disabled'); } // Prepare technical info to be output. $qa = $quba->get_question_attempt($slot); $technical = array(); $technical[] = get_string('behaviourbeingused', 'question', question_engine::get_behaviour_name($qa->get_behaviour_name())); $technical[] = get_string('technicalinfominfraction', 'question', $qa->get_min_fraction()); $technical[] = get_string('technicalinfoquestionsummary', 'question', s($qa->get_question_summary())); $technical[] = get_string('technicalinforightsummary', 'question', s($qa->get_right_answer_summary())); $technical[] = get_string('technicalinfostate', 'question', '' . $qa->get_state()); // Start output. $title = get_string('previewquestion', 'question', format_string($question->name)); $headtags = question_engine::initialise_js() . $quba->render_question_head_html($slot); $PAGE->set_title($title); $PAGE->set_heading($title); echo $OUTPUT->header(); // Start the question form. echo html_writer::start_tag('form', array('method' => 'post', 'action' => $actionurl, 'enctype' => 'multipart/form-data', 'id' => 'responseform'));