123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514 |
- <?php
- /* For licensing terms, see /license.txt */
- require_once '../inc/global.inc.php';
- $allow = api_get_configuration_value('extra');
- if (empty($allow)) {
- exit;
- }
- api_block_anonymous_users();
- $nameTools = get_lang('Progress');
- $this_section = 'session_my_progress_ind';
- $_user = api_get_user_info();
- $tbl_stats_exercices = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
- $tbl_stats_access = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
- Display::display_header($nameTools);
- $result = Database::query(
- "SELECT DISTINCT session.id as id, name, access_start_date date_start, access_end_date date_end
- FROM session_rel_course_rel_user,session
- WHERE session_id=session.id AND user_id=".$_user['user_id']."
- ORDER BY date_start, date_end, name");
- $Sessions = Database::store_result($result);
- $Courses = [];
- foreach ($Sessions as $enreg) {
- $id_session_temp = $enreg['id'];
- $sql8 = "SELECT *
- FROM course
- WHERE code = '$courses_code'
- ";
- $result8 = Database::query($sql8);
- $course_code_id = Database::fetch_array($result8);
- $c_id = $course_code_id['id'];
- $sql = "SELECT DISTINCT c_id,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.c_id=$c_id
- AND $tbl_session_course.id_session='$id_session_temp'
- ORDER BY title";
- $result = Database::query($sql);
- while ($a_session_courses = Database::fetch_array($result)) {
- $a_session_courses['id_session'] = $id_session_temp;
- $Courses[$a_session_courses['code']] = $a_session_courses;
- }
- }
- // affichage des jours complétés dans les parcours l'élève
- //on recherche les cours où sont inscrit les user
- $user_c_id = $_user['user_id'];
- $sql2 = "SELECT c_id, user_id
- FROM course_rel_user
- WHERE user_id = '$user_c_id'
- ";
- $result2 = Database::query($sql2);
- $Total = 0;
- while ($a_courses = Database::fetch_array($result2)) {
- $courses_code = $a_courses['c_id'];
- //on sort le c_id avec le code du cours
- //$sql8 = "SELECT *
- // FROM course
- // WHERE code = '$courses_code'
- // ";
- // $result8 = Database::query($sql8);
- // $course_code_id = Database::fetch_array($result8) ;
- $c_id = $courses_code;
- //pours chaque cours dans lequel il est inscrit, on cherche les jours complétés
- $Req1 = "SELECT *
- FROM c_lp_view
- WHERE user_id = '$user_c_id' AND c_id = '$c_id'
- ";
- $res = Database::query($Req1);
- while ($result = Database::fetch_array($res)) {
- $lp_id = $result['lp_id'];
- $lp_id_view = $result['id'];
- $c_id_view = $result['c_id'];
- $Req2 = "SELECT id, lp_id ,title ,item_type
- FROM c_lp_item
- WHERE lp_id = '$lp_id'
- AND title LIKE '(+)%'
- AND c_id = '$c_id_view'
- AND item_type = 'document'
- ";
- $res2 = Database::query($Req2);
- while ($resulta = Database::fetch_array($res2)) {
- $lp_item_id = $resulta['id'];
- $Req3 = " SELECT Max(id)
- FROM c_lp_item_view
- WHERE
- lp_item_id = '$lp_item_id' AND
- lp_view_id = '$lp_id_view' AND
- c_id = '$c_id_view' AND
- status = 'completed'
- ";
- $res3 = Database::query($Req3);
- while ($resul = Database::fetch_array($res3)) {
- $max = $resul['0'];
- $Req4 = "SELECT COUNT( id )
- FROM c_lp_item_view
- WHERE
- id = '$max' AND
- c_id = '$c_id_view'
- ";
- $res4 = Database::query($Req4);
- while ($resultat = Database::fetch_array($res4)) {
- if ($resultat[0] == null) {
- $resultat[0] = 0;
- }
- $Total = $Total + $resultat[0];
- }
- }
- }
- }
- }
- api_display_tool_title($nameTools);
- $now = date('Y-m-d');
- $tbl_personal_agenda = Database:: get_main_table(TABLE_PERSONAL_AGENDA);
- //on compte le nombre de m% dans l'agenda pour chaque module
- $sqljtot = "SELECT COUNT( * ) AS TOT
- FROM $tbl_personal_agenda
- WHERE user = '".$_user['user_id']."'
- And title like 'm%'
-
- ";
- $resultjt = Database::query($sqljtot);
- $jour_realise = 0;
- while ($jtot = Database::fetch_array($resultjt)) {
- $jour_realise_tot = ($jour_realise + $jtot['TOT']) / 2;
- }
- //fin des jour de l'agenda
- //on trouve le nombre dans l'agenda selon la date d'aujourdhui
- //si rien n'est inscrit cette journée dans l'agenda, recule de -1
- $jour_agenda = '';
- $tour = -1;
- while ($jour_agenda == '') {
- $tour++;
- $date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $tour, date("Y")));
- $sql4 = "SELECT title FROM $tbl_personal_agenda
- WHERE user = '".$_user['user_id']."' AND
- text='Pour le calendrier, ne pas effacer' AND
- date like '".$date." %:%' ";
- $result4 = Database::query($sql4);
- $res4 = Database::fetch_array($result4);
- $jour_agenda = $res4['title'];
- if ($tour > 300) {
- break;
- }
- }
- $diff = $jour_agenda - $Total;
- if ($diff > 0) {
- $sing = get_lang('retard');
- } else {
- $sing = get_lang('avance');
- }
- $diff = abs($diff);
- ?>
- <table class="data_table">
- <th rowspan="5">
- <?php
- //on récupere les points de controle de l'élève
- $pt[] = '0';
- $pt[] = '0';
- $sqlcontrole = "SELECT diff
- FROM $tbl_stats_exercices
- WHERE exe_user_id = ".$_user['user_id']."
- AND diff != ''
- ORDER BY exe_date ASC
- ";
- $result = Database::query($sqlcontrole);
- while ($ptctl = Database::fetch_array($result)) {
- $pt[] = $ptctl['diff'];
- }
- //graphique de suivi
- /*include "../inc/teechartphp/sources/TChart.php";
- $chart = new TChart(500, 300);
- $chart->getAspect()->setView3D(false);
- $chart->getHeader()->setText("Graphique de suivi");
- $chart->getAxes()->getLeft()->setMinimumOffset(10);
- $chart->getAxes()->getLeft()->setMaximumOffset(10);
- $chart->getAxes()->getBottom()->setMinimumOffset(10);
- $chart->getAxes()->getBottom()->setMaximumOffset(10);
- $line1 = new Line($chart->getChart());
- $data = $pt;
- $line1->addArray($data);
- foreach ($chart->getSeries() as $serie) {
- $pointer = $serie->getPointer();
- $pointer->setVisible(true);
- $pointer->getPen()->setVisible(false);
- $pointer->setHorizSize(2);
- $pointer->setVertSize(2);
- $marks = $serie->getMarks();
- $marks->setVisible(true);
- $marks->setArrowLength(5);
- $marks->getArrow()->setVisible(false);
- $marks->setTransparent(true);
- }
- $x = $_user['user_id'];
- $line1->getPointer()->setStyle(PointerStyle::$CIRCLE);
- $chart->getLegend()->setVisible(false);
- $chart->render("../garbage/$x-image.png");
- $rand = rand();
- print '<img src="../garbage/'.$x.'-image.png?rand='.$rand.'">';
- */
- ?>
- <tr>
- <th align="left" width="412">
- <?php echo get_lang('Cumulatif_agenda'); ?>:
- <b><font color=#CC0000> <?php echo $jour_realise_tot; ?></font></b>
- </th>
- </tr>
- <tr>
- <th align="left">
- <?php echo get_lang('Cumulatif'); ?> <b><font color=#CC0000> <?php echo $Total; ?></font></b>
- </th>
- </tr>
- <tr>
- <th align="left">
- <?php echo get_lang('jours_selon_horaire'); ?>:
- <b><font color=#CC0000> <?php echo $jour_agenda; ?><?php echo $Days; ?></font></b>
- </th>
- </tr>
- <tr>
- <th align="left">
- <?php echo get_lang('diff2'); ?>:
- <b><font color=#CC0000> <?php echo $diff; ?><?php echo $Days, $sing; ?></font></b>
- </th>
- </tr>
- </table>
- <hr>
- <table class='data_table'>
- <tr>
- <th><?php echo get_lang('level'); ?> </th>
- <th>
- <?php echo get_lang('lang_date'); ?>
- </th>
- <th>
- <?php echo get_lang('interventions_commentaires'); ?>
- </th>
- </tr>
- <?php
- $sqlinter = "SELECT *
- FROM $tbl_stats_exercices
- WHERE exe_user_id = ".$_user['user_id']."
- And level != 0
- Order by LEVEL ASC";
- $resultinter = Database::query($sqlinter);
- $level = '';
- while ($a_inter = Database::fetch_array($resultinter)) {
- $level = $a_inter['level'];
- $mod_no = $a_inter['mod_no'];
- $inter_coment = Security::remove_XSS($a_inter['inter_coment']);
- $inter_date = substr($a_inter['exe_date'], 0, 11);
- echo "
- <tr>
- <td> ".$a_inter['level']."</td>
- <td> $inter_date </td>
- <td>$inter_coment</td>";
- $exe_id = $a_inter['exe_id'];
- }
- if ($level == 3) {
- echo '<span style="color: red; font-weight: bold;"><img src="../img/anim/pointeranim.gif"align="middle" > ';
- echo $limit;
- echo '</span>';
- }
- ?>
- <p>
- </table><br>
- <?php
- //début de fin des cours prevu
- $user_info = api_get_user_info();
- $user_id = api_get_user_id();
- //On cherche le calendrier pour ce user et le c_id de ce calendrier
- $sql = "SELECT *
- FROM user
- WHERE user_id = '$user_id'
- ";
- $result = Database::query($sql);
- $horaire_id = Database::fetch_array($result);
- $nom_hor = $horaire_id['official_code'];
- $c_id_horaire = strstr($nom_hor, '.');
- $c_id_horaire = str_replace(".", "", "$c_id_horaire");
- // Courses
- echo '<h3>'.get_lang('Course').'</h3>';
- echo '<table class="data_table">';
- echo '<tr>
- <th>'.get_lang('Course').'</th>
- <th>'.get_lang('Time').'</th>
- <th>'.get_lang('FirstConnexion').'</th>
- <th>'.get_lang('Progress').'</th>
- <th>'.get_lang('fin_mod_prevue').'</th>
- </tr>';
- //on recherche les cours où sont inscrit les user
- $user_c_id = $_user['user_id'];
- $sql2 = "SELECT c_id, user_id
- FROM course_rel_user
- WHERE user_id = '$user_id'";
- $result2 = Database::query($sql2);
- while ($a_courses = Database::fetch_array($result2)) {
- $courses_code = $a_courses['c_id'];
- //on sort le c_id avec le code du cours
- $sql8 = "SELECT title, code
- FROM course
- WHERE id = '$courses_code'";
- $result8 = Database::query($sql8);
- $course_code_id = Database::fetch_array($result8);
- $c_id = $courses_code;
- $c_title = $course_code_id['title'];
- // Francois Belisle Kezber
- // The Tracking Class still uses the course code rather then the course id.
- $tracking_c_code = $course_code_id['code'];
- // time spent on the course
- $time_spent_on_course = api_time_to_hms(Tracking:: get_time_spent_on_the_course($user_id, $c_id, $session_id));
- // firts connection date
- $sql2 = "SELECT STR_TO_DATE(access_date,'%Y-%m-%d')
- FROM $tbl_stats_access
- WHERE
- access_user_id = '$user_id' AND
- c_id = '$c_id'
- ORDER BY access_id ASC
- LIMIT 0,1";
- //Francois Belisle Kezber
- // mysql fonctions rather then Database::
- // conversion to Database::
- $rs2 = Database::query($sql2);
- $num_rows = Database::num_rows($rs2);
- if ($num_rows > 0) {
- $rw2 = Database::fetch_array($rs2);
- $first_connection_date_to_module = $rw2[0];
- }
- //pour trouver la date de fin prévue du module
- $end_date_module = get_lang('hors_cal');
- //on trouve le nombre de jour pour ce module
- $sql = "SELECT * FROM c_cal_set_module
- where c_id = '$c_id'";
- $res = Database::query($sql);
- $resulta = Database::fetch_array($res);
- $nombre_heure = $resulta['minutes'];
- // on trouve le nombre de minute par jour
- $sql = "SELECT * FROM c_cal_horaire
- where c_id = '$c_id_horaire'
- AND name = '$nom_hor'
- ";
- $res = Database::query($sql);
- $resulta = Database::fetch_array($res);
- $nombre_minutes = (int) $resulta['num_minute'];
- //on calcule le nombre de jour par module
- $nombre_jours_module = 0;
- if (!empty($nombre_minutes)) {
- $nombre_jours_module = $nombre_heure * '60' / $nombre_minutes;
- }
- //on arrondi
- $nombre_jours_module = (int) $nombre_jours_module;
- //on trouve la date de fin de chaque module AND date = date_format('$first_connection_date_to_module','%Y-%m-%d')
- $sql = "SELECT * FROM c_cal_dates
- WHERE
- horaire_name = '$nom_hor' AND
- c_id = '$c_id_horaire' AND
- STR_TO_DATE(date,'%Y-%m-%d') >= STR_TO_DATE('$first_connection_date_to_module','%Y-%m-%d')
- ORDER BY STR_TO_DATE(date, '%Y-%m-%d') asc
- LIMIT $nombre_jours_module, 18446744073709551615
- ";
- $res = Database::query($sql);
- //Database::data_seek($res,$nombre_jours_module);
- $row = Database::fetch_row($res);
- $end_date_module = $row[1];
- //fin de trouver la date de fin prévue du module
- //progression en %
- $t_lp = Database:: get_course_table(TABLE_LP_MAIN);
- $sql_lp = " SELECT lp.name, lp.id FROM $t_lp lp WHERE c_id = '$c_id' ORDER BY lp.display_order";
- $rs_lp = Database::query($sql_lp);
- $i = 0;
- while ($learnpath = Database:: fetch_array($rs_lp)) {
- $lp_id = intval($learnpath['id']);
- $lp_name = $learnpath['name'];
- $any_result = false;
- // Get progress in lp
- // Francois Belisle Kezber
- // Course Code passed rather then course_id
- $progress = Tracking::get_avg_student_progress(
- $user_c_id, /*$c_id*/
- $tracking_c_code,
- [$lp_id],
- $session_id
- );
- if ($progress === null) {
- $progress = '0%';
- } else {
- $any_result = true;
- }
- // Get time in lp
- // Francois Belisle Kezber
- // Course Code passed rather then course_id
- $total_time = Tracking::get_time_spent_in_lp(
- $user_c_id, /*$c_id*/
- $tracking_c_code,
- [$lp_id],
- $session_id
- );
- if (!empty($total_time)) {
- $any_result = true;
- }
- if ($i % 2 == 0) {
- $css_class = "row_even";
- } else {
- $css_class = "row_odd";
- }
- $i++;
- if (is_numeric($progress)) {
- $progress = $progress.'%';
- } else {
- $progress = '-';
- }
- $data_learnpath[/*$i*/
- $lp_id][] = $progress.'%';
- }
- $warming = '';
- $today = date('Y-m-d');
- if (isset($end_date_module) && $end_date_module <= $today and $progress != '100%') {
- $warming = '<b><font color=#CC0000> '.get_lang('limite_atteinte').'</font></b>';
- }
- $end_date_module = $end_date_module.$warming;
- echo '<tr>
- <td >'.$c_title.'</td>
- <td >'.$time_spent_on_course.'</td>
- <td >'.$first_connection_date_to_module.'</td>
- <td >'.$progress.'</td>
- <td >'.$end_date_module.'</td>';
- echo '</tr>';
- }
- echo '</table>';
- ?> </table>
- <br/><br/>
- <table class='data_table'>
- <tr>
- <th colspan="6">
- <?php
- echo get_lang('result_exam');
- //echo $_user['name'];
- ?>
- </th>
- <tr>
- <th><?php echo get_lang('module'); ?></th>
- <th><?php echo get_lang('result_exam'); ?></th>
- <th><?php echo get_lang('result_rep_1'); ?></th>
- <th><?php echo get_lang('result_rep_2'); ?></th>
- <th><?php echo get_lang('comment'); ?></th>
- </tr>
- <?php
- $sqlexam = "SELECT *
- FROM $tbl_stats_exercices
- WHERE exe_user_id = '".$_user['user_id']."'
- AND c_id = '0' AND mod_no != '0'
- ORDER BY mod_no ASC";
- $resultexam = Database::query($sqlexam);
- while ($a_exam = Database::fetch_array($resultexam)) {
- $ex_id = $a_exam['ex_id'];
- $mod_no = $a_exam['mod_no'];
- $score_ex = $a_exam['score_ex'];
- $score_rep1 = $a_exam['score_rep1'];
- $score_rep2 = $a_exam['score_rep2'];
- $coment = stripslashes($a_exam['coment']);
- echo "
- <tr>
- <td><center> ".$a_exam['mod_no']."
- </td>
- <td><center>
- ".$a_exam['score_ex']."
- </td>
- <td><center>
- ".$a_exam['score_rep1']."
- </td><center>
- <td><center>
- ".$a_exam['score_rep2']."
- </td>
- <td>$coment
- ";
- $exe_idd = $a_exam['exe_id']; ?>
- </tr>
- <?php
- }
- ?>
- </table>
- <?php
- Display::display_footer();
|