foreach ($ausers as $auser) { $sessions_summary = jclic_get_sessions_summary($jclic->id, $auser->id); if ($sessions_summary->attempts <= 0) { continue; } $countusers++; $picture = $OUTPUT->user_picture($auser); $userlink = '<a href="' . $CFG->wwwroot . '/user/view.php?id=' . $auser->id . '&course=' . $course->id . '">' . fullname($auser, has_capability('moodle/site:viewfullnames', $context)) . '</a>'; $extradata = array(); foreach ($extrafields as $field) { $extradata[] = $auser->{$field}; } $numsessions = 0; if ($mode == 'details') { // Print sessions for each student $sessions = jclic_get_sessions($jclic->id, $auser->id); $numsessions = count($sessions); if ($numsessions > 0) { $first_session = true; foreach ($sessions as $session) { // Print session information $rowclass = null; $starttime = '<a href="#" onclick="showSessionActivities(\'' . $session->session_id . '\');">' . date('d/m/Y H:i', strtotime($session->starttime)) . '</a>'; $solveddone = $session->solved . ' / ' . $session->done; $grade = $session->score; $totaltime = $session->totaltime; $attempts = $session->attempts; $row = array_merge(array($picture, $userlink), $extradata, array($starttime, $attempts, $solveddone, $totaltime, $grade)); $table->add_data($row, $rowclass); // Print activities for each session $html = '<tr class="jclic-session-activities-hidden" id="session_' . $session->session_id . '" >';
$strscore = get_string("score", "jclic"); $strtotaltime = get_string("totaltime", "jclic"); $strtotals = get_string("totals", "jclic"); $strdone = get_string("activitydone", "jclic"); $stractivitysolved = get_string("activitysolved", "jclic"); $strattempts = get_string("attempts", "jclic"); $strlastaccess = get_string("lastaccess", "jclic"); $strmsgnosessions = get_string("msg_nosessions", "jclic"); $stractivity = get_string("activity", "jclic"); $strsolved = get_string("solved", "jclic"); $stractions = get_string("actions", "jclic"); $strtime = get_string("time", "jclic"); $stryes = get_string("yes"); $strno = get_string("no"); print_header("{$course->shortname}: {$jclic->name}", "{$jclic->name}", ""); $sessions = jclic_get_sessions($jclic->id, $USER->id); if (sizeof($sessions) > 0) { echo "<script language=\"JavaScript\" src=\"../prototype.js\" type=\"text/javascript\"></script>"; echo '<table class="generaltable" align="center" border="0" cellpadding="5" cellspacing="1" width="95%"><tbody>'; $general_align = array('center', 'center', 'center', 'center', 'center', 'center'); // Print header jclic_print_row(array($strstarttime, $strscore, $strtotaltime, $strdone, $stractivitysolved, $strattempts), $general_align, '', true); // Print session data foreach ($sessions as $session) { $sessiontime = '<a href="#" onclick="Element.toggle(\'' . $session->session_id . '\')">' . date('d/m/Y H:i', strtotime($session->starttime)) . '</a>'; $table_data = array($sessiontime, $session->score . '%', $session->totaltime, $session->done, $session->solved, $session->attempts . ($jclic->maxattempts > 0 ? '/' . $jclic->maxattempts : '')); jclic_print_row($table_data, $general_align); // Print activities for each session print_session_activities($session->session_id); } if (sizeof($sessions) > 1) {
/** * Display the jclic applet * */ function jclic_view_applet($jclic, $context, $ispreview = false) { global $OUTPUT, $PAGE, $CFG, $USER; $timenow = time(); $isopen = empty($jclic->timeavailable) || $jclic->timeavailable < $timenow; if (!$isopen) { echo $OUTPUT->box(get_string('notopenyet', 'jclic', userdate($jclic->timeavailable)), 'generalbox boxaligncenter jclicdates'); if (!$ispreview) { return; } } $isclosed = !empty($jclic->timedue) && $jclic->timedue < $timenow; if ($isclosed) { echo $OUTPUT->box(get_string('expired', 'jclic', userdate($jclic->timedue)), 'generalbox boxaligncenter jclicdates'); if (!$ispreview) { return; } } $sessions = jclic_get_sessions($jclic->id, $USER->id); $attempts = count($sessions); if (!$ispreview && ($attempts > 0 || $isopen)) { echo '<br><A href="#" onclick="window.open(\'action/student_results.php?id=' . $context->instanceid . '\',\'JClic\',\'navigation=0,toolbar=0,resizable=1,scrollbars=1,width=700,height=400\');" >' . get_string('show_my_results', 'jclic') . '</A>'; } $config = get_config('jclic'); if ($jclic->maxattempts < 0 || $attempts < $jclic->maxattempts) { echo '<div id="jclic_applet" style="text-align:center;padding-top:10px;">'; echo '</div>'; if (isset($config->pluginjs) && !empty($config->pluginjs)) { echo '<script type="text/javascript" src="' . $config->pluginjs . '"></script>'; } else { $PAGE->requires->js('/mod/jclic/jclicplugin.js'); } $PAGE->requires->js('/mod/jclic/jclic.js'); $params = get_object_vars($jclic); $params['jclic_url'] = jclic_get_url($jclic, $context); $params['jclic_path'] = jclic_get_server(); $params['jclic_service'] = jclic_get_path() . '/mod/jclic/action/beans.php'; $params['jclic_user'] = $USER->id; $params['jclic_jarbase'] = $config->jarbase; $params['jclic_lap'] = $config->lap; $params['width'] = 800; $params['height'] = 600; if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 || substr($CFG->wwwroot, 0, strlen('https')) === 'https') { $params['jclic_protocol'] = 'https'; } else { $params['jclic_protocol'] = 'http'; } $PAGE->requires->js_init_call('M.mod_jclic.init', array($params)); } else { echo $OUTPUT->box(get_string('msg_noattempts', 'jclic'), 'generalbox boxaligncenter'); } jclic_view_dates($jclic, $context, $timenow); }