コード例 #1
0
// 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();
コード例 #2
0
    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;
コード例 #3
0
         $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) {
コード例 #4
0
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>');