You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
522 lines
14 KiB
522 lines
14 KiB
<?php
|
|
// name of the language file that needs to be included
|
|
$language_file = array('registration','tracking');
|
|
|
|
$cidReset = true;
|
|
|
|
require ('../inc/global.inc.php');
|
|
|
|
$nameTools=get_lang('MyProgress');
|
|
|
|
|
|
if(isset($_GET['id_session']))
|
|
{
|
|
$id_session = intval($_GET['id_session']);
|
|
|
|
$_SESSION['id_session']=$id_session;
|
|
}
|
|
elseif(isset($_SESSION['id_session']))
|
|
{
|
|
$id_session=$_SESSION['id_session'];
|
|
}
|
|
else
|
|
{
|
|
$id_session=0;
|
|
}
|
|
|
|
api_block_anonymous_users();
|
|
|
|
Display :: display_header($nameTools);
|
|
|
|
// Database table definitions
|
|
$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
|
|
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
|
|
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
|
|
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
|
|
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
|
|
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
|
|
$tbl_stats_lastaccess = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
|
|
$tbl_stats_exercices = Database :: get_statistic_table(STATISTIC_TRACK_E_EXERCICES_TABLE);
|
|
$tbl_course_lp_view = Database :: get_course_table('lp_view');
|
|
$tbl_course_lp_view_item = Database :: get_course_table('lp_item_view');
|
|
$tbl_course_lp = Database :: get_course_table('lp');
|
|
$tbl_course_lp_item = Database :: get_course_table('lp_item');
|
|
$tbl_course_quiz = Database :: get_course_table('quiz');
|
|
|
|
$result=api_sql_query("SELECT DISTINCT id, name, date_start, date_end FROM session_rel_course_rel_user,session WHERE id_session=id AND id_user=".$_user['user_id']." ORDER BY date_start, date_end, name",__FILE__,__LINE__);
|
|
|
|
$Sessions=api_store_result($result);
|
|
|
|
$Courses=array();
|
|
|
|
if($id_session)
|
|
{
|
|
/*
|
|
$result=api_sql_query("SELECT code, title, CONCAT(user.lastname,' ',user.firstname) coach, email
|
|
FROM $tbl_session_course_user AS session_course_user, $tbl_session_course AS session_course, $tbl_course AS course, $tbl_user AS user
|
|
WHERE session_course_user.id_session='$id_session'
|
|
AND session_course_user.id_user='".$_user['user_id']."'
|
|
AND session_course_user.course_code=course.code
|
|
AND session_course_user.id_session=session_course.id_session
|
|
AND session_course_user.course_code=session_course.course_code
|
|
AND session_course.id_coach=user.user_id
|
|
ORDER BY title",__FILE__,__LINE__);
|
|
*/
|
|
|
|
$sql = "SELECT DISTINCT code,title, CONCAT(lastname, ' ',firstname) coach, username, date_start, date_end, db_name
|
|
FROM $tbl_course , $tbl_session_course
|
|
LEFT JOIN $tbl_user
|
|
ON $tbl_session_course.id_coach = $tbl_user.user_id
|
|
INNER JOIN $tbl_session_course_user
|
|
ON $tbl_session_course_user.id_session = $tbl_session_course.id_session
|
|
AND $tbl_session_course_user.id_user = '".$_user['user_id']."'
|
|
INNER JOIN $tbl_session ON $tbl_session.id = $tbl_session_course.id_session
|
|
WHERE $tbl_session_course.course_code=code
|
|
AND $tbl_session_course.id_session='$id_session'
|
|
ORDER BY title";
|
|
|
|
$result=api_sql_query($sql);
|
|
|
|
$Courses=api_store_result($result);
|
|
}
|
|
|
|
api_display_tool_title($nameTools);
|
|
|
|
$now=date('Y-m-d');
|
|
|
|
echo get_lang('ProgressIntroduction');
|
|
?>
|
|
<br /><br />
|
|
|
|
<form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>" style="margin: 0px;">
|
|
<center>
|
|
Session de cours :
|
|
<select name="id_session">
|
|
<option value="0">---------- <?php echo get_lang('Select'); ?> ----------</option>
|
|
|
|
<?php
|
|
$date_start=$date_end=$now;
|
|
|
|
foreach($Sessions as $enreg)
|
|
{
|
|
if($enreg['id'] == $id_session)
|
|
{
|
|
$date_start=$enreg['date_start'];
|
|
$date_end=$enreg['date_end'];
|
|
}
|
|
$enreg['date_start']=explode('-',$enreg['date_start']);
|
|
$enreg['date_start']=$enreg['date_start'][2].'/'.$enreg['date_start'][1].'/'.$enreg['date_start'][0];
|
|
|
|
$enreg['date_end']=explode('-',$enreg['date_end']);
|
|
$enreg['date_end']=$enreg['date_end'][2].'/'.$enreg['date_end'][1].'/'.$enreg['date_end'][0];
|
|
|
|
?>
|
|
|
|
<option value="<?php echo $enreg['id']; ?>" <?php if($enreg['id'] == $id_session) echo 'selected="selected"'; ?> ><?php echo htmlentities($enreg['name']); if($date_start!='0000-00-00') { ?> (<?php echo get_lang('From'); ?> <?php echo $enreg['date_start']; ?> <?php echo get_lang('Until'); ?> <?php echo $enreg['date_end']; ?>)<?php } ?></option>
|
|
|
|
<?php
|
|
}
|
|
|
|
unset($Sessions);
|
|
?>
|
|
|
|
</select>
|
|
<input type="submit" value="Valider">
|
|
</center>
|
|
</form>
|
|
|
|
<br><br>
|
|
|
|
<table class="data_table" width="100%">
|
|
<tr class="tableName">
|
|
<td colspan="6">
|
|
<strong><?php echo get_lang('MyLearnpath'); ?></strong>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th><?php echo get_lang('Course'); ?></th>
|
|
<th><?php echo get_lang('Time'); ?></th>
|
|
<th><?php echo get_lang('Progress'); ?></th>
|
|
<th><?php echo get_lang('Score'); ?></th>
|
|
<th><?php echo get_lang('LastConnexion'); ?></th>
|
|
<th><?php echo get_lang('Details'); ?></th>
|
|
</tr>
|
|
|
|
<?php
|
|
$i = 0;
|
|
$totalWeighting = 0;
|
|
$totalScore = 0;
|
|
$totalItem = 0;
|
|
$totalProgress = 0;
|
|
|
|
foreach($Courses as $enreg)
|
|
{
|
|
$sqlTime = "SELECT total_time
|
|
FROM ".$enreg['db_name'].'.'.$tbl_course_lp_view_item." AS lpi
|
|
INNER JOIN ".$enreg['db_name'].'.'.$tbl_course_lp_view." AS lpv
|
|
ON lpv.lp_id = lpi.lp_view_id
|
|
AND lpv.user_id = ".$_user['user_id']
|
|
;
|
|
$result = api_sql_query($sqlTime);
|
|
while($totalTime = mysql_fetch_array($result))
|
|
{
|
|
//print_r($totalTime);
|
|
}
|
|
|
|
$sqlScore = "SELECT exe_result,exe_weighting
|
|
FROM $tbl_stats_exercices
|
|
WHERE exe_user_id = ".$_user['user_id']."
|
|
AND exe_cours_id = '".$enreg['code']."'
|
|
";
|
|
|
|
$resultScore = api_sql_query($sqlScore);
|
|
$i = 0;
|
|
$score = 0;
|
|
while($a_score = mysql_fetch_array($resultScore))
|
|
{
|
|
$score = $score + $a_score['exe_result'];
|
|
$weighting = $weighting + $a_score['exe_weighting'];
|
|
$i++;
|
|
}
|
|
|
|
$totalScore = $totalScore + $score;
|
|
$totalWeighting = $totalWeighting + $weighting;
|
|
|
|
$pourcentageScore = round(($score*100)/$weighting);
|
|
|
|
$weighting = 0;
|
|
|
|
$sqlLastAccess = " SELECT access_date
|
|
FROM $tbl_stats_lastaccess
|
|
WHERE access_user_id = ".$_user['user_id']."
|
|
AND access_cours_code = '".$enreg['code']."'
|
|
ORDER BY access_date DESC LIMIT 0,1"
|
|
;
|
|
$result = api_sql_query($sqlLastAccess);
|
|
$lastAccess = mysql_fetch_array($result);
|
|
|
|
if(!empty($lastAccess['access_date']))
|
|
{
|
|
$a_lastConnexion = explode(' ',$lastAccess['access_date']);
|
|
$a_date = explode('-',$a_lastConnexion[0]);
|
|
$a_heure = explode(':',$a_lastConnexion[1]);
|
|
$lastConnexion = $a_date[2]."/".$a_date[1]."/".$a_date[0];
|
|
$lastAccessTms = mktime ( $a_heure[0], $a_heure[1] ,$a_heure[2] ,$a_date[1], $a_date[2],$a_date[0]);
|
|
}
|
|
else
|
|
{
|
|
$lastConnexion = get_lang('NoConnexion');
|
|
}
|
|
$sqlProgress = "SELECT COUNT(DISTINCT item_view.lp_item_id) AS nbItem
|
|
FROM ".$enreg['db_name'].".".$tbl_course_lp_view_item." AS item_view
|
|
INNER JOIN ".$enreg['db_name'].".".$tbl_course_lp_view." AS view
|
|
ON view.user_id = ".$_user['user_id']."
|
|
WHERE item_view.status = 'completed'
|
|
";
|
|
$resultProgress = api_sql_query($sqlProgress);
|
|
$a_nbItem = mysql_fetch_array($resultProgress);
|
|
|
|
$table = $enreg['db_name'].'.'.$tbl_course_lp_item;
|
|
$nbTotalItem = Database :: count_rows($table);
|
|
|
|
$totalItem = $totalItem + $nbTotalItem;
|
|
$totalProgress = $totalProgress + $a_nbItem['nbItem'];
|
|
|
|
$progress = round(($a_nbItem['nbItem'] * 100)/$nbTotalItem);
|
|
|
|
/*$time = $lastAccessTms - $firstAccessTms;
|
|
|
|
if($time >= 60)
|
|
{
|
|
$minute = round($time/60);
|
|
if($minute >= 60)
|
|
{
|
|
$heure = round($minute/60);
|
|
$minute = $minute - round((60*(($time/60)/60)));
|
|
if($minute == 0)
|
|
{
|
|
$minute = '00';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$heure = 0;
|
|
}
|
|
$temps = $heure.'h'.$minute;
|
|
}
|
|
else
|
|
{
|
|
$temps = '0h00';
|
|
}
|
|
$totalTime .= $time; */
|
|
?>
|
|
|
|
<tr class='<?php echo $i?'row_odd':'row_even'; ?>'>
|
|
<td>
|
|
<?php echo htmlentities($enreg['title']); ?>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<?php echo $temps; ?>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<?php echo $progress.'%'; ?>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<?php echo $pourcentageScore.'%'; ?>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<?php echo $lastConnexion; ?>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<a href="<?php echo $SERVER['PHP_SELF']; ?>?course=<?php echo $enreg['code']; ?>"> -> </a>
|
|
</td>
|
|
</tr>
|
|
|
|
<?php
|
|
|
|
|
|
|
|
$i=$i ? 0 : 1;
|
|
}
|
|
|
|
unset($Courses);
|
|
|
|
/*if($totalTime >= 60)
|
|
{
|
|
$minute = round($totalTime / 60);
|
|
|
|
if($minute >= 60)
|
|
{
|
|
$heure = round($minute / 60);
|
|
$minute = $minute - round((60*(($time/60)/60)));
|
|
if($minute == 0)
|
|
{
|
|
$minute = '00';
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
$heure = 0;
|
|
}
|
|
|
|
$totalTemps = $heure.'h'.$minute;
|
|
}
|
|
else
|
|
{
|
|
$totalTemps = '0h00';
|
|
}*/
|
|
|
|
$totalPourcentageScore = round(($totalScore*100)/$totalWeighting);
|
|
$progress = round(($totalProgress*100)/$totalItem);
|
|
|
|
?>
|
|
<tr class='total'>
|
|
<td>
|
|
<strong><?php echo get_lang('Total'); ?></strong>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<?php echo $totalTemps; ?>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<?php echo $progress.'%'; ?>
|
|
</td>
|
|
|
|
<td align='center'>
|
|
<?php echo $totalPourcentageScore.'%'; ?>
|
|
</td>
|
|
|
|
<td>
|
|
</td>
|
|
|
|
<td>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br/><br/>
|
|
|
|
<?php
|
|
/*
|
|
* **********************************************************************************************
|
|
*
|
|
* Details for one course
|
|
*
|
|
* **********************************************************************************************
|
|
*/
|
|
if(isset($_GET['course']))
|
|
{
|
|
$sqlInfosCourse = " SELECT course.code,course.title,course.db_name,CONCAT(user.firstname,' ',user.lastname,' / ',user.email) as tutor_infos
|
|
FROM $tbl_user as user,$tbl_course as course
|
|
INNER JOIN $tbl_session_course as sessionCourse
|
|
ON sessionCourse.course_code = course.code
|
|
WHERE sessionCourse.id_coach = user.user_id
|
|
AND course.code= '".$_GET['course']."'
|
|
";
|
|
|
|
$resultInfosCourse = api_sql_query($sqlInfosCourse);
|
|
|
|
$a_infosCours = mysql_fetch_array($resultInfosCourse);
|
|
$tableTitle = $a_infosCours['title'].' - '.get_lang('Tutor').' : '.$a_infosCours['tutor_infos'];
|
|
|
|
|
|
|
|
?>
|
|
<table class="data_table" width="100%">
|
|
<tr class="tableName">
|
|
<td colspan="4">
|
|
<strong><?php echo $tableTitle; ?></strong>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="head"><?php echo get_lang('Learnpath'); ?></th>
|
|
<th class="head"><?php echo get_lang('Time'); ?></th>
|
|
<th class="head"><?php echo get_lang('Progress'); ?></th>
|
|
<th class="head"><?php echo get_lang('LastConnexion'); ?></th>
|
|
</tr>
|
|
<?php
|
|
$sqlLearnpath = " SELECT lp.name,lp.id
|
|
FROM ".$a_infosCours['db_name'].".".$tbl_course_lp." AS lp
|
|
";
|
|
|
|
$resultLearnpath = api_sql_query($sqlLearnpath);
|
|
|
|
if(mysql_num_rows($resultLearnpath)>0)
|
|
{
|
|
while($a_learnpath = mysql_fetch_array($resultLearnpath))
|
|
{
|
|
$sqlProgress = "SELECT COUNT(DISTINCT lp_item_id) AS nbItem
|
|
FROM ".$a_infosCours['db_name'].".".$tbl_course_lp_view_item." AS item_view
|
|
INNER JOIN ".$a_infosCours['db_name'].".".$tbl_course_lp_view." AS view
|
|
ON item_view.lp_view_id = view.id
|
|
AND view.lp_id = ".$a_learnpath['id']."
|
|
AND view.user_id = ".$_user['user_id']."
|
|
WHERE item_view.status = 'completed'
|
|
";
|
|
$resultProgress = api_sql_query($sqlProgress);
|
|
$a_nbItem = mysql_fetch_array($resultProgress);
|
|
|
|
$sqlTotalItem = " SELECT COUNT(item_type) AS totalItem
|
|
FROM ".$a_infosCours['db_name'].".".$tbl_course_lp_item."
|
|
WHERE lp_id = ".$a_learnpath['id']
|
|
;
|
|
$resultItem = api_sql_query($sqlTotalItem);
|
|
$a_totalItem = mysql_fetch_array($resultItem);
|
|
|
|
$progress = round(($a_nbItem['nbItem'] * 100)/$a_totalItem['totalItem']);
|
|
|
|
|
|
echo "<tr>
|
|
<td>
|
|
";
|
|
echo $a_learnpath['name'];
|
|
echo " </td>
|
|
<td>
|
|
";
|
|
echo " </td>
|
|
<td align='center'>
|
|
";
|
|
echo $progress.'%';
|
|
echo " </td>
|
|
<td align='center'>
|
|
";
|
|
echo "unknown";
|
|
echo " </td>
|
|
</tr>
|
|
";
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
echo " <tr>
|
|
<td colspan='4'>
|
|
".get_lang('NoLearnpath')."
|
|
</td>
|
|
</tr>
|
|
";
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
<tr>
|
|
<th class="head"><?php echo get_lang('Exercices'); ?></th>
|
|
<th class="head"><?php echo get_lang('Score'); ?></th>
|
|
<th class="head"><?php echo get_lang('Essais'); ?></th>
|
|
<th class="head"><?php echo get_lang('Correction'); ?></th>
|
|
</tr>
|
|
|
|
<?php
|
|
|
|
$sqlExercices = " SELECT quiz.title,id
|
|
FROM ".$a_infosCours['db_name'].".".$tbl_course_quiz." AS quiz
|
|
";
|
|
|
|
|
|
$resuktExercices = api_sql_query($sqlExercices);
|
|
while($a_exercices = mysql_fetch_array($resuktExercices))
|
|
{
|
|
$sqlEssais = " SELECT COUNT(ex.exe_id) as essais
|
|
FROM $tbl_stats_exercices AS ex
|
|
WHERE ex.exe_cours_id = '".$a_infosCours['code']."'
|
|
AND ex.exe_exo_id = ".$a_exercices['id']
|
|
;
|
|
$resultEssais = api_sql_query($sqlEssais);
|
|
$a_essais = mysql_fetch_array($resultEssais);
|
|
|
|
$sqlScore = "SELECT exe_result,exe_weighting
|
|
FROM $tbl_stats_exercices
|
|
WHERE exe_user_id = ".$_user['user_id']."
|
|
AND exe_cours_id = '".$a_infosCours['code']."'
|
|
AND exe_exo_id = ".$a_exercices['id']
|
|
;
|
|
|
|
$resultScore = api_sql_query($sqlScore);
|
|
$score = 0;
|
|
while($a_score = mysql_fetch_array($resultScore))
|
|
{
|
|
$score = $score + $a_score['exe_result'];
|
|
$weighting = $weighting + $a_score['exe_weighting'];
|
|
}
|
|
$pourcentageScore = round(($score*100)/$weighting);
|
|
|
|
$weighting = 0;
|
|
|
|
echo "<tr>
|
|
<td>
|
|
";
|
|
echo $a_exercices['title'];
|
|
echo " </td>
|
|
";
|
|
echo " <td align='center'>
|
|
";
|
|
echo $pourcentageScore.'%';
|
|
echo " </td>
|
|
|
|
<td align='center'>
|
|
";
|
|
echo $a_essais['essais'];
|
|
echo " </td>
|
|
<td>
|
|
";
|
|
echo " </td>
|
|
</tr>
|
|
";
|
|
}
|
|
|
|
|
|
?>
|
|
</table>
|
|
<?php
|
|
}
|
|
|
|
Display :: display_footer();
|
|
?>
|
|
|