teachers.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. ob_start();
  4. // names of the language file that needs to be included
  5. $language_file = array ('registration', 'index', 'trad4all', 'tracking', 'admin');
  6. $cidReset = true;
  7. require_once '../inc/global.inc.php';
  8. require_once 'myspace.lib.php';
  9. $this_section = SECTION_TRACKING;
  10. $nameTools = get_lang('Teachers');
  11. api_block_anonymous_users();
  12. $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace'));
  13. Display :: display_header($nameTools);
  14. $formateurs = array();
  15. if (api_is_drh() || api_is_platform_admin()) {
  16. // followed teachers by drh
  17. $formateurs = UserManager::get_users_followed_by_drh($_user['user_id'], COURSEMANAGER);
  18. $menu_items = array();
  19. $menu_items[] = Display::url(Display::return_icon('stats.png', get_lang('MyStats'),'',ICON_SIZE_MEDIUM),api_get_path(WEB_CODE_PATH)."auth/my_progress.php" );
  20. $menu_items[] = Display::url(Display::return_icon('user.png', get_lang('Students'), array(), 32), "index.php?view=drh_students&amp;display=yourstudents");
  21. $menu_items[] = Display::return_icon('teacher_na.png', get_lang('Trainers'), array(), 32);
  22. $menu_items[] = Display::url(Display::return_icon('course.png', get_lang('Courses'), array(), 32), 'course.php');
  23. $menu_items[] = Display::url(Display::return_icon('session.png', get_lang('Sessions'), array(), 32), 'session.php');
  24. echo '<div class="actions">';
  25. $nb_menu_items = count($menu_items);
  26. if ($nb_menu_items > 1) {
  27. foreach ($menu_items as $key => $item) {
  28. echo $item;
  29. }
  30. }
  31. if (count($formateurs) > 0) {
  32. echo '<span style="float:right">';
  33. echo Display::url(Display::return_icon('printer.png', get_lang('Print'), array(), 32), 'javascript: void(0);', array('onclick'=>'javascript: window.print();'));
  34. echo Display::url(Display::return_icon('export_csv.png', get_lang('ExportAsCSV'), array(), 32), api_get_self().'?export=xls');
  35. echo '</span>';
  36. }
  37. echo '</div>';
  38. echo Display::page_subheader(get_lang('YourTeachers'));
  39. }
  40. if (!api_is_drh()) {
  41. api_display_tool_title($nameTools);
  42. }
  43. /**
  44. * MAIN PART
  45. */
  46. if (isset($_POST['export'])) {
  47. $is_western_name_order = api_is_western_name_order(PERSON_NAME_DATA_EXPORT);
  48. } else {
  49. $is_western_name_order = api_is_western_name_order();
  50. }
  51. $sort_by_first_name = api_sort_by_first_name();
  52. if (!api_is_drh() && !api_is_platform_admin()) {
  53. $order_clause = $sort_by_first_name ? ' ORDER BY firstname, lastname' : ' ORDER BY lastname, firstname';
  54. if (isset($_GET["teacher_id"]) && $_GET["teacher_id"] != 0) {
  55. $teacher_id = intval($_GET["teacher_id"]);
  56. $sql_formateurs = "SELECT user_id,lastname,firstname,email
  57. FROM $tbl_user
  58. WHERE user_id='$teacher_id'".$order_clause;
  59. } else {
  60. $sql_formateurs = "SELECT user_id,lastname,firstname,email
  61. FROM $tbl_user
  62. WHERE status = 1".$order_clause;
  63. }
  64. $result_formateurs = Database::query($sql_formateurs);
  65. if (Database::num_rows($result_formateurs) > 0) {
  66. while ($row_formateurs = Database::fetch_array($result_formateurs)) {
  67. $formateurs[] = $row_formateurs;
  68. }
  69. }
  70. }
  71. $time_filter = 'last_7_days';
  72. $time_label = sprintf(get_lang('TimeSpentLastXDays'), 7);
  73. $form = new FormValidator('time_filter');
  74. $form->addElement('datepickerdate', 'start_date', get_lang('StartDate'), array('form_name'=>'exercise_admin'));
  75. $form->addElement('datepickerdate', 'end_date', get_lang('EndDate'), array('form_name'=>'exercise_admin'));
  76. $form->addRule('start_date', get_lang('InvalidDate'), 'date');
  77. $form->addRule('end_date', get_lang('InvalidDate'), 'date');
  78. $form->addRule(array ('start_date', 'end_date'), get_lang('StartDateShouldBeBeforeEndDate'), 'date_compare', 'lte');
  79. $defaults = array();
  80. $defaults['start_date'] = date('Y-m-d 12:00:00', strtotime("-7 days"));
  81. $defaults['end_date'] = date('Y-m-d 12:00:00',time());
  82. $start_date = $end_date = null;
  83. if ($form->validate()) {
  84. $values = $form->exportValues();
  85. $start_date = $defaults['start_date'] = $values['start_date'];
  86. $end_date = $defaults['end_date'] = $values['end_date'];
  87. $time_filter = 'custom';
  88. $time_label = sprintf(get_lang('TimeSpentBetweenXAndY'), $start_date, $end_date);
  89. }
  90. $form->setDefaults($defaults);
  91. $form->addelement('style_submit_button', 'submit', get_lang('Filter'));
  92. $form->display();
  93. if ($is_western_name_order) {
  94. echo '<table class="data_table"><tr><th>'.get_lang('FirstName').'</th><th>'.get_lang('LastName').'</th><th>'.$time_label.'</th><th>'.get_lang('Email').'</th><th>'.get_lang('AdminCourses').'</th><th>'.get_lang('Students').'</th></tr>';
  95. } else {
  96. echo '<table class="data_table"><tr><th>'.get_lang('LastName').'</th><th>'.get_lang('FirstName').'</th><th>'.$time_label.'</th><th>'.get_lang('Email').'</th><th>'.get_lang('AdminCourses').'</th><th>'.get_lang('Students').'</th></tr>';
  97. }
  98. if ($is_western_name_order) {
  99. $header[] = get_lang('FirstName');
  100. $header[] = get_lang('LastName');
  101. } else {
  102. $header[] = get_lang('LastName');
  103. $header[] = get_lang('FirstName');
  104. }
  105. $header[] = $time_label;
  106. $header[] = get_lang('Email');
  107. $data = array();
  108. if (count($formateurs) > 0) {
  109. $i = 1;
  110. foreach ($formateurs as $formateur) {
  111. $user_id = $formateur["user_id"];
  112. $lastname = $formateur["lastname"];
  113. $firstname = $formateur["firstname"];
  114. $email = $formateur["email"];
  115. if ($i % 2 == 0) {
  116. $css_class = "row_odd";
  117. if ($i % 20 == 0 && $i != 0) {
  118. if ($is_western_name_order) {
  119. echo '<tr><th>'.get_lang('FirstName').'</th><th>'.get_lang('LastName').'</th><th>'.get_lang('Email').'</th><th>'.get_lang('AdminCourses').'</th><th>'.get_lang('Students').'</th></tr>';
  120. } else {
  121. echo '<tr><th>'.get_lang('LastName').'</th><th>'.get_lang('FirstName').'</th><th>'.get_lang('Email').'</th><th>'.get_lang('AdminCourses').'</th><th>'.get_lang('Students').'</th></tr>';
  122. }
  123. }
  124. } else {
  125. $css_class = "row_even";
  126. }
  127. $i++;
  128. if ($is_western_name_order) {
  129. $data[$user_id]["firstname"] = $firstname;
  130. $data[$user_id]["lastname"] = $lastname;
  131. } else {
  132. $data[$user_id]["lastname"] = $lastname;
  133. $data[$user_id]["firstname"] = $firstname;
  134. }
  135. $time_on_platform = api_time_to_hms(Tracking :: get_time_spent_on_the_platform($user_id, $time_filter, $start_date, $end_date));
  136. $data[$user_id]["timespentlastweek"] = $time_on_platform;
  137. $data[$user_id]["email"] = $email;
  138. if ($is_western_name_order) {
  139. echo '<tr class="'.$css_class.'"><td>'.$firstname.'</td><td>'.$lastname.'</td><td align="right">'.$time_on_platform.'</td><td align="right"><a href="mailto:'.$email.'">'.$email.'</a></td><td align="right"><a href="course.php?user_id='.$user_id.'"><img src="'.api_get_path(WEB_IMG_PATH).'2rightarrow.gif" border="0" /></a></td><td align="right"><a href="student.php?user_id='.$user_id.'&amp;display=yourstudents"><img src="'.api_get_path(WEB_IMG_PATH).'2rightarrow.gif" border="0" /></a></td></tr>';
  140. } else {
  141. echo '<tr class="'.$css_class.'"><td>'.$lastname.'</td><td>'.$firstname.'</td><td align="right">'.$time_on_platform.'</td><td align="right"><a href="mailto:'.$email.'">'.$email.'</a></td><td align="right"><a href="course.php?user_id='.$user_id.'"><img src="'.api_get_path(WEB_IMG_PATH).'2rightarrow.gif" border="0" /></a></td><td align="right"><a href="student.php?user_id='.$user_id.'&amp;display=yourstudents"><img src="'.api_get_path(WEB_IMG_PATH).'2rightarrow.gif" border="0" /></a></td></tr>';
  142. }
  143. }
  144. } else {
  145. // No results
  146. echo '<tr><td colspan="6">'.get_lang("NoResults").'</td></tr>';
  147. }
  148. echo '</table>';
  149. if (isset($_POST['export']) || (api_is_drh() && isset($_GET['export']))) {
  150. MySpace::export_csv($header, $data, 'teachers.csv');
  151. }
  152. if (!api_is_drh()) {
  153. echo "<form method='post' action='teachers.php'><input type='submit' name='export' value='".get_lang('exportExcel')."'/><form>";
  154. }
  155. Display::display_footer();