Minor - Cleaning code

skala
Julio Montoya 13 years ago
parent 67f9963f7d
commit d66bf70b13
  1. 159
      main/newscorm/lp_stats.php

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
/**
* This script displays statistics on the current learning path (scorm)
@ -7,7 +8,6 @@
* @author Yannick Warnier <ywarnier@beeznest.org>
* @todo clean this file like the exercise files J.M
*/
/**
* Code
*/
@ -22,7 +22,6 @@ if (empty($user_id)) {
}
// Declare variables to be used in lp_stats.php
//When checking the reporting myspace/lp_tracking.php
if (isset($_GET['lp_id']) && isset($lp_id) && !empty($lp_id)) {
$lp_id = intval($lp_id);
@ -56,16 +55,9 @@ if (!isset($origin)) {
//Origin = tracking means that teachers see that info in the Reporting tool
if ($origin != 'tracking') {
Display::display_reduced_header();
echo '<body dir="'.api_get_text_direction().'">';
}
$output = '';
// if display in fullscreen required.
if (!empty($_GET['fs']) && strcmp($_GET['fs'], 'true') == 0) {
$output .= '<table width="100%" align="center">';
} else {
$output .= '<table width="100%">';
}
// Check if the user asked for the "extend all" option.
$extend_all_link = '';
@ -83,9 +75,10 @@ if (!empty($_GET['extend_all'])) {
}
if ($origin != 'tracking') {
$output .= "<tr><td><h2>" . get_lang('ScormMystatus') . "</h2></td></tr>";
$output .= Display::page_header(get_lang('ScormMystatus'));
}
$output .= '<tr><td><table border="0" class="data_table"><tr>'.
$output .= '<table class="data_table"><tr>' .
'<th width="16">' . $extend_all_link . '</td>' .
'<th colspan="4" class="title"><div class="mystatusfirstrow">' . get_lang('ScormLessonTitle') . "</div></td>" .
'<th colspan="2" class="title"><div class="mystatusfirstrow">' . get_lang('ScormStatus') . "</div></td>" .
@ -140,10 +133,24 @@ if (isset($_GET['lp_id']) && isset($_GET['lp_item_id'])) {
if (Database::num_rows($res_path) > 0) {
if ($origin != 'tracking') {
$sql_attempts = 'SELECT * FROM ' . $tbl_stats_exercices . '
WHERE exe_exo_id="' . (int)$row_path['path'] . '" AND status <> "incomplete" AND exe_user_id="' . api_get_user_id() . '" AND orig_lp_id = "'.(int)$clean_lp_id.'" AND orig_lp_item_id = "'.(int)$clean_lp_item_id.'" AND exe_cours_id="' . $clean_course_code. '" AND session_id = '.$session_id.' ORDER BY exe_date';
WHERE exe_exo_id="' . (int) $row_path['path'] . '" AND
status <> "incomplete" AND
exe_user_id="' . api_get_user_id() . '" AND
orig_lp_id = "' . (int) $clean_lp_id . '" AND
orig_lp_item_id = "' . (int) $clean_lp_item_id . '" AND
exe_cours_id="' . $clean_course_code . '" AND
session_id = ' . $session_id . '
ORDER BY exe_date';
} else {
$sql_attempts = 'SELECT * FROM ' . $tbl_stats_exercices . '
WHERE exe_exo_id="' . (int)$row_path['path'] . '" AND status <> "incomplete" AND exe_user_id="' . $student_id . '" AND orig_lp_id = "'.(int)$clean_lp_id.'" AND orig_lp_item_id = "'.(int)$clean_lp_item_id.'" AND exe_cours_id="' . $clean_course_code. '" AND session_id = '.$session_id.' ORDER BY exe_date';
WHERE exe_exo_id="' . (int) $row_path['path'] . '" AND
status <> "incomplete" AND
exe_user_id="' . $student_id . '" AND
orig_lp_id = "' . (int) $clean_lp_id . '" AND
orig_lp_item_id = "' . (int) $clean_lp_item_id . '" AND
exe_cours_id="' . $clean_course_code . '" AND
session_id = ' . $session_id . '
ORDER BY exe_date';
}
}
//var_dump($sql_attempts);
@ -161,8 +168,7 @@ if (is_array($list) && count($list) > 0) {
// Prepare statement to go through each attempt.
if (!empty($view)) {
$sql = "SELECT
iv.status as mystatus,
$sql = "SELECT iv.status as mystatus,
v.view_count as mycount,
iv.score as myscore,
iv.total_time as mytime,
@ -183,12 +189,12 @@ if (is_array($list) && count($list) > 0) {
i.id = $my_item_id AND
i.lp_id = $lp_id AND
v.user_id = $user_id AND
v.view_count = $view AND v.session_id = $session_id
v.view_count = $view AND
v.session_id = $session_id
ORDER BY iv.view_count $qry_order ";
//var_dump($sql);
} else {
$sql = "SELECT
iv.status as mystatus,
$sql = "SELECT iv.status as mystatus,
v.view_count as mycount,
iv.score as myscore,
iv.total_time as mytime,
@ -233,7 +239,6 @@ if (is_array($list) && count($list) > 0) {
}
}
//echo '<br /><pre>'; print_r($row); echo '</pre><br />';
// If there are several attempts, and the link to extend has been clicked, show each attempt...
if (($counter % 2) == 0) {
$oddclass = 'row_odd';
@ -253,7 +258,15 @@ if (is_array($list) && count($list) > 0) {
if ($row['item_type'] != 'dokeos_chapter') {
$correct_test_link = '-';
$title = Security::remove_XSS($title);
$output .= "<tr class='$oddclass'>" . "<td>$extend_link</td>" . '<td colspan="4" class="content"><div class="mystatus">' . $title . "</div></td>" . '<td colspan="2" class="content"></td>'.'<td colspan="2" class="content"></td>'.'<td colspan="2" class="content"></td><td class="content"></td>' . "</tr>";
$output .= '<tr class="'.$oddclass.'">
<td>'.$extend_link.'</td>
<td colspan="4" class="content">
<div class="mystatus">'.$title.'</div>
</td>
<td colspan="2" class="content"></td>
<td colspan="2" class="content"></td>
<td colspan="2" class="content"></td>
<td class="content"></td></tr>';
}
$counter++;
@ -266,10 +279,10 @@ if (is_array($list) && count($list) > 0) {
if (!empty($_GET['extend_attempt_id']) && $_GET['extend_attempt_id'] == $row['iv_id']) {
// The extend button for this attempt has been clicked.
$extend_this_attempt = 1;
$extend_attempt_link = '<a href="' . api_get_self() . '?action=stats&extend_id=' . $my_item_id . '&fold_attempt_id=' . $row['iv_id'] . $url_suffix . '"><img src="../img/visible.gif" alt="'.get_lang('HideAttemptView').'" title="'.get_lang('HideAttemptView').'" border="0"></a>' . "\n";
$extend_attempt_link = '<a href="' . api_get_self() . '?action=stats&extend_id=' . $my_item_id . '&fold_attempt_id=' . $row['iv_id'] . $url_suffix . '"><img src="../img/visible.gif" alt="' . get_lang('HideAttemptView') . '" title="' . get_lang('HideAttemptView') . '" border="0"></a>';
} else { // Same case if fold_attempt_id is set, so not implemented explicitly.
// The extend button for this attempt has not been clicked.
$extend_attempt_link = '<a href="' . api_get_self() . '?action=stats&extend_id=' . $my_item_id . '&extend_attempt_id=' . $row['iv_id'] . $url_suffix . '"><img src="../img/invisible.gif" alt="'.get_lang('ExtendAttemptView').'" title="'.get_lang('ExtendAttemptView').'" border="0"></a>' . "\n";
$extend_attempt_link = '<a href="' . api_get_self() . '?action=stats&extend_id=' . $my_item_id . '&extend_attempt_id=' . $row['iv_id'] . $url_suffix . '"><img src="../img/invisible.gif" alt="' . get_lang('ExtendAttemptView') . '" title="' . get_lang('ExtendAttemptView') . '" border="0"></a>';
}
}
@ -361,7 +374,6 @@ if (is_array($list) && count($list) > 0) {
} else {
$temp[] = ($score == 0 ? '0/' . $maxscore : ($maxscore == 0 ? $score : $score . '/' . float_format($maxscore, 1)));
}
} else {
$temp[] = ($score == 0 ? '/' : ($maxscore == 0 ? $score : $score . '/' . float_format($maxscore, 1)));
}
@ -409,7 +421,6 @@ if (is_array($list) && count($list) > 0) {
}
}
} while ($row = Database :: fetch_array($result));
} elseif ($num > 0) {
//Not extended
@ -479,9 +490,25 @@ if (is_array($list) && count($list) > 0) {
// Selecting the exe_id from stats attempts tables in order to look the max score value.
if ($origin != 'tracking') {
$sql_last_attempt = 'SELECT * FROM ' . $tbl_stats_exercices . ' WHERE exe_exo_id="' . $row['path'] . '" AND exe_user_id="' . api_get_user_id() . '" AND orig_lp_id = "'.$lp_id.'" AND orig_lp_item_id = "'.$row['myid'].'" AND exe_cours_id="' . $course_code . '" AND status <> "incomplete" AND session_id = '.$session_id.' ORDER BY exe_date DESC limit 1';
} else {
$sql_last_attempt = 'SELECT * FROM ' . $tbl_stats_exercices . ' WHERE exe_exo_id="' . $row['path'] . '" AND exe_user_id="' . $student_id . '" AND orig_lp_id = "'.$lp_id.'" AND orig_lp_item_id = "'.$row['myid'].'" AND exe_cours_id="' . $course_code . '" AND status <> "incomplete" AND session_id = '.$session_id.' ORDER BY exe_date DESC limit 1';
$sql_last_attempt = 'SELECT * FROM ' . $tbl_stats_exercices . '
WHERE exe_exo_id="' . $row['path'] . '" AND
exe_user_id="' . api_get_user_id() . '" AND
orig_lp_id = "' . $lp_id . '" AND
orig_lp_item_id = "' . $row['myid'] . '" AND
exe_cours_id="' . $course_code . '" AND
status <> "incomplete" AND
session_id = ' . $session_id . '
ORDER BY exe_date DESC limit 1';
} else {
$sql_last_attempt = 'SELECT * FROM ' . $tbl_stats_exercices . '
WHERE exe_exo_id="' . $row['path'] . '" AND
exe_user_id="' . $student_id . '" AND
orig_lp_id = "' . $lp_id . '" AND
orig_lp_item_id = "' . $row['myid'] . '" AND
exe_cours_id="' . $course_code . '" AND
status <> "incomplete" AND
session_id = ' . $session_id . '
ORDER BY exe_date DESC limit 1';
}
$resultLastAttempt = Database::query($sql_last_attempt);
@ -499,8 +526,7 @@ if (is_array($list) && count($list) > 0) {
if ($row['item_type'] == 'sco') {
if (!empty($row['myviewmaxscore']) and $row['myviewmaxscore'] > 0) {
$maxscore = $row['myviewmaxscore'];
}
elseif ($row['myviewmaxscore'] === '') {
} elseif ($row['myviewmaxscore'] === '') {
$maxscore = 0;
} else {
$maxscore = $row['mymaxscore'];
@ -509,13 +535,13 @@ if (is_array($list) && count($list) > 0) {
if ($row['item_type'] == 'quiz') {
// Get score and total time from last attempt of a exercise en lp.
$sql = "SELECT score FROM $TBL_LP_ITEM_VIEW
WHERE c_id = $course_id AND lp_item_id = '".(int)$my_id."' and lp_view_id = '".(int)$my_lp_view_id."'
WHERE c_id = $course_id AND lp_item_id = '" . (int) $my_id . "' AND lp_view_id = '" . (int) $my_lp_view_id . "'
ORDER BY view_count DESC limit 1";
$res_score = Database::query($sql);
$row_score = Database::fetch_array($res_score);
$sql = "SELECT SUM(total_time) as total_time FROM $TBL_LP_ITEM_VIEW
WHERE c_id = $course_id AND lp_item_id = '".(int)$my_id."' and lp_view_id = '".(int)$my_lp_view_id."'";
WHERE c_id = $course_id AND lp_item_id = '" . (int) $my_id . "' AND lp_view_id = '" . (int) $my_lp_view_id . "'";
$res_time = Database::query($sql);
$row_time = Database::fetch_array($res_time);
@ -529,9 +555,12 @@ if (is_array($list) && count($list) > 0) {
//echo $subtotal_time ;
//$time = learnpathItem :: get_scorm_time('js', $subtotal_time);
// Selecting the max score from an attempt.
$sql = "SELECT SUM(t.ponderation) as maxscore FROM (
SELECT distinct question_id, marks, ponderation FROM $tbl_stats_attempts as at INNER JOIN $tbl_quiz_questions as q
ON (q.id = at.question_id AND q.c_id = $course_id )
$sql = "SELECT SUM(t.ponderation) as maxscore
FROM (
SELECT distinct question_id, marks, ponderation
FROM $tbl_stats_attempts as at INNER JOIN $tbl_quiz_questions as q
ON (q.id = at.question_id AND q.c_id = $course_id
)
WHERE exe_id ='$id_last_attempt' ) as t";
$result = Database::query($sql);
@ -621,7 +650,7 @@ if (is_array($list) && count($list) > 0) {
} else {
$output .= ($score == 0 ? '/' : ($maxscore == 0 ? $score : $score . '/' . $maxscore));
}
$output .= "</div></td>" . '<td colspan="2"><div class="mystatus">' . $time . "</div></td><td>$correct_test_link</td>";
$output .= '</div></td><td colspan="2"><div class="mystatus">' . $time .'</div></td><td>'.$correct_test_link.'</td>';
$output .= "</tr>";
}
@ -655,9 +684,19 @@ if (is_array($list) && count($list) > 0) {
} else {
$oddclass = 'row_even';
}
$output .= "<tr class='$oddclass'>\n" . '<td></td>' . "\n" . '<td></td>' . "\n" . '<td>&nbsp;</td>' . "\n" . '<td>' . $interaction['order_id'] . '</td>' . "\n" . '<td>' . $interaction['id'] . '</td>' . "\n"
. '<td colspan="2">' . $interaction['type'] . "</td>\n"
. '<td>' . urldecode($interaction['student_response']) . "</td>\n" . '<td>' . $interaction['result'] . "</td>\n" . '<td>' . $interaction['latency'] . "</td>\n" . '<td>' . $interaction['time'] . "</td>\n<td></td>\n</tr>\n";
$output .= '<tr class="'.$oddclass.'">
<td></td>
<td></td>
<td></td>
<td>'.$interaction['order_id'].'</td>
<td>'.$interaction['id'].'</td>
<td colspan="2">' . $interaction['type'].'</td>
<td>'.urldecode($interaction['student_response']).'</td>
<td>'.$interaction['result'].'</td>
<td>'.$interaction['latency'].'</td>
<td>'.$interaction['time'].'</td>
<td></td>
</tr>';
$counter++;
}
$list2 = learnpath :: get_iv_objectives_array($row['iv_id']);
@ -667,9 +706,18 @@ if (is_array($list) && count($list) > 0) {
} else {
$oddclass = 'row_even';
}
$output .= "<tr class='$oddclass'>" . '<td></td>' . '<td></td>' . '<td>&nbsp;</td>' . '<td>' . $interaction['order_id'] . '</td>'.'<td colspan="2">' . $interaction['objective_id'] . '</td>'.
'<td colspan="2">' . $interaction['status'] . "</td>" .
'<td>' . $interaction['score_raw'] . "</td>" . '<td>' . $interaction['score_max'] . "</td>" . '<td>' . $interaction['score_min'] . "</td>\n<td></td>\n</tr>";
$output .= '<tr class="'.$oddclass.'">
<td></td>
<td></td>
<td></td>
<td>' . $interaction['order_id'] . '</td>
<td colspan="2">'.$interaction['objective_id'] . '</td>
<td colspan="2">' . $interaction['status'] . '</td>
<td>' . $interaction['score_raw'].'</td>
<td>' . $interaction['score_max'] .'</td>
<td>' . $interaction['score_min'].'</td>
<td></td>
</tr>';
$counter++;
}
}
@ -725,9 +773,17 @@ if (is_array($list) && count($list) > 0) {
$my_lesson_status = get_lang($mylanglist['incomplete']);
}
$output .= '<tr class="'.$oddclass.'" ><td>&nbsp;</td><td>'.$extend_attempt_link.'</td><td colspan="3">' . get_lang('Attempt') . ' ' . $n . '</td>'
. '<td colspan="2">' . Display::label($my_lesson_status, $class_status).'</td><td colspan="2">
<div class="mystatus" align="center">' . $view_score . '</div></td><td colspan="2"><div class="mystatus">' . $time_attemp . '</div></td>';
$output .= '<tr class="' . $oddclass . '" >
<td></td>
<td>' . $extend_attempt_link . '</td>
<td colspan="3">' . get_lang('Attempt') . ' ' . $n . '</td>
<td colspan="2">' . Display::label($my_lesson_status, $class_status) . '</td>
<td colspan="2">
<div class="mystatus" align="center">' . $view_score . '</div>
</td>
<td colspan="2">
<div class="mystatus">' . $time_attemp . '</div>
</td>';
if ($origin != 'tracking') {
if (!$is_allowed_to_edit && $result_disabled_ext_all) {
$output .= '<td><img src="' . api_get_path(WEB_IMG_PATH) . 'quiz_na.gif" alt="' . get_lang('ShowAttempt') . '" title="' . get_lang('ShowAttempt') . '"></td>';
@ -816,11 +872,20 @@ if (($counter % 2) == 0) {
}
//if (empty($extend_all)) {
$output .= "<tr class='$oddclass'>\n" . "<td></td>\n" . '<td colspan="4"><div class="mystatus"><i>' . get_lang('AccomplishedStepsTotal') . "</i></div></td>\n"
. '<td colspan="2"></td>' . "\n" . '<td colspan="2"><div class="mystatus" align="center">' . $final_score . "</div></td>\n" . '<td colspan="2"><div class="mystatus">' . $total_time . '</div></td><td></td>' . "\n" . "</tr>\n";
$output .= '<tr class="'.$oddclass.'">
<td></td>
<td colspan="4">
<div class="mystatus"><i>' . get_lang('AccomplishedStepsTotal') .'</i></div>
</td>
<td colspan="2"></td>
<td colspan="2">
<div class="mystatus" align="center">' . $final_score.'</div>
</td>
<td colspan="2"><div class="mystatus">' . $total_time . '</div></td><td></td>
</tr>';
//}
$output .= "</table></td></tr></table>";
$output .= "</table>";
if (!empty($export_csv)) {
$temp = array(

Loading…
Cancel
Save