// Attempt to validate the user // (this will auto-register/enrol users where necessary and allowed) // If server access level is public, then validation is not essential... otherwise, it is $sloodleserveraccesslevel = $sloodle->request->get_server_access_level(false); if ($sloodleserveraccesslevel == 0) { $sloodle->validate_user(false); } else { $sloodle->validate_user(true); } // Has an incoming message been provided? $message = sloodle_clean_for_db($sloodle->request->optional_param('message', null)); if ($message != null) { // Add it to the chatroom. if (!$sloodle->module->add_message($message)) { add_to_log($sloodle->course->get_course_id(), 'sloodle', 'add message', '', 'Added chat message to chatroom', $sloodle->request->get_module_id()); } else { add_to_log($sloodle->course->get_course_id(), 'sloodle', 'add message', '', 'Failed to add chat message to chatroom', $sloodle->request->get_module_id()); } } // Start preparing the response $sloodle->response->set_status_code(1); $sloodle->response->set_status_descriptor('OK'); // Fetch a chat history. // Always limit it to the last 60 seconds, but optionally also ignore everything before a certain point. $messages = $sloodle->module->get_chat_history(60, $sloodle->request->optional_param('firstmessageid', 0)); foreach ($messages as $m) { $author = sloodle_clean_for_output($m->authorname); $sloodle->response->add_data_line(array($m->id, $author, sloodle_clean_for_output($m->message))); } // Output our response $sloodle->response->render_to_output();
if ($curslidenum == $sloodleslidenum) { $outputslide = $curslide; break; } $curslidenum++; } // Output the basic presenter information $sloodle->response->set_status_code(1); $sloodle->response->set_status_descriptor('OK'); $sloodle->response->add_data_line(array($numslides, sloodle_clean_for_output($sloodle->module->get_name()))); // Our plugin data will be store in these variables $slidetype = ''; $slidesource = ''; // Attempt to load the plugin required by our current slide sloodle_debug("Attempting to load plugin \"{$outputslide->type}\"..."); $slideplugin = $sloodle->plugins->get_plugin('presenter-slide', $outputslide->type); if ($slideplugin === false) { // Indicate the error as a side effect, and specify the type as an error sloodle_debug("Failed to load Presenter slide plugin.\n"); $sloodle->response->add_side_effect(-132); $slidetype = 'ERROR'; $slidesource = ''; } else { // Load the slide data from the plugin sloodle_debug("Loaded plugin OK\n"); list($slidetype, $slidesource) = $slideplugin->render_slide_for_sl($outputslide); } // Output the slide data $sloodle->response->add_data_line(array($sloodleslidenum, sloodle_clean_for_output($slidetype), sloodle_clean_for_output($slidesource), sloodle_clean_for_output($outputslide->name))); $sloodle->response->render_to_output(); exit;
$shuffleanswers = 0; if (isset($q->options->shuffleanswers) && $q->options->shuffleanswers) { $shuffleanswers = 1; } $output[] = array('question', $localqnum, $q->id, $q->parent, sloodle_clean_for_output($q->questiontext), $q->defaultgrade, $q->penalty, $q->qtype, $q->hidden, $q->maxgrade, $q->single, $shuffleanswers, 0); // Create an output array for our options (available answers) so that we can shuffle them later if necessary $outputoptions = array(); // Go through each option $ops = $q->options; foreach ($ops as $opkey => $op) { if (!is_array($op)) { continue; } // Ignore this if there are no options (Prevents nasty PHP notices!) foreach ($op as $ok => $ov) { $outputoptions[] = array('questionoption', $i, $ov->id, $ov->question, sloodle_clean_for_output($ov->answer), $ov->fraction, sloodle_clean_for_output($ov->feedback)); } } // Shuffle the options if necessary if ($shuffleanswers) { shuffle($outputoptions); } // Append our options to the main output array $output = array_merge($output, $outputoptions); } //print_question($questions[$i], $states[$i], $number, $quiz, $options); save_question_session($questions[$i], $states[$i]); $number += $questions[$i]->length; } $secondsleft = ($quiz->timeclose ? $quiz->timeclose : 999999999999.0) - time(); //if ($isteacher) {
if (strcasecmp($sloodlesearchaliases, 'true') == 0 || $sloodlesearchaliases == '1') { $sloodlesearchaliases = true; } else { $sloodlesearchaliases = false; } if (strcasecmp($sloodlesearchdefinitions, 'true') == 0 || $sloodlesearchdefinitions == '1') { $sloodlesearchdefinitions = true; } else { $sloodlesearchdefinitions = false; } // Search the glossary $results = $sloodle->module->search($sloodleterm, $sloodlepartialmatches, $sloodlesearchaliases, $sloodlesearchdefinitions); if (is_array($results)) { $sloodle->response->set_status_code(1); $sloodle->response->set_status_descriptor('OK'); // Go through each result foreach ($results as $r) { $concept = sloodle_clean_for_output($r->concept); $def = sloodle_clean_for_output($r->definition); $sloodle->response->add_data_line(array($concept, $def)); } } else { $sloodle->response->set_status_code(-103); $sloodle->response->set_status_descriptor('SYSTEM'); $sloodle->response->add_data_line('Failed to search glossary'); } // Output our response sloodle_debug('<pre>'); // For debug mode, lets us see the response in a browser $sloodle->response->render_to_output(); sloodle_debug('</pre>');