teachers.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. /* For licensing terms, see /dokeos_license.txt */
  3. /*
  4. * Created on 18 October 2006 by Elixir Interactive http://www.elixir-interactive.com
  5. */
  6. ob_start();
  7. // names of the language file that needs to be included
  8. $language_file = array ('registration', 'index', 'trad4all', 'tracking', 'admin');
  9. $cidReset = true;
  10. require_once '../inc/global.inc.php';
  11. require_once 'myspace.lib.php';
  12. require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
  13. require_once api_get_path(LIBRARY_PATH).'tracking.lib.php';
  14. $this_section = "session_my_space";
  15. $nameTools = get_lang('Teachers');
  16. api_block_anonymous_users();
  17. $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace'));
  18. Display :: display_header($nameTools);
  19. $formateurs = array();
  20. if (api_is_drh() || api_is_platform_admin()) {
  21. // followed teachers by drh
  22. $formateurs = UserManager::get_users_followed_by_drh($_user['user_id'], COURSEMANAGER);
  23. $menu_items[] = '<a href="index.php?view=drh_students&amp;display=yourstudents">'.get_lang('Students').'</a>';
  24. $menu_items[] = get_lang('Trainers');
  25. $menu_items[] = '<a href="course.php">'.get_lang('Courses').'</a>';
  26. $menu_items[] = '<a href="session.php">'.get_lang('Sessions').'</a>';
  27. echo '<div class="actions-title" style ="font-size:10pt;">';
  28. $nb_menu_items = count($menu_items);
  29. if ($nb_menu_items > 1) {
  30. foreach ($menu_items as $key => $item) {
  31. echo $item;
  32. if ($key != $nb_menu_items - 1) {
  33. echo '&nbsp;|&nbsp;';
  34. }
  35. }
  36. }
  37. if (count($formateurs) > 0) {
  38. echo '&nbsp;&nbsp;<a href="javascript: void(0);" onclick="javascript: window.print()"><img align="absbottom" src="../img/printmgr.gif">&nbsp;'.get_lang('Print').'</a> ';
  39. echo '<a href="'.api_get_self().'?export=xls"><img align="absbottom" src="../img/excel.gif">&nbsp;'.get_lang('ExportAsXLS').'</a>';
  40. }
  41. echo '</div>';
  42. echo '<h4>'.get_lang('YourTeachers').'</h4>';
  43. echo '<br />';
  44. }
  45. if (!api_is_drh()) {
  46. api_display_tool_title($nameTools);
  47. }
  48. // Database Table Definitions
  49. $tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
  50. $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
  51. $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
  52. $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
  53. $tbl_session_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_USER);
  54. /**
  55. * MAIN PART
  56. */
  57. if (isset($_POST['export'])) {
  58. $is_western_name_order = api_is_western_name_order(PERSON_NAME_DATA_EXPORT);
  59. } else {
  60. $is_western_name_order = api_is_western_name_order();
  61. }
  62. $sort_by_first_name = api_sort_by_first_name();
  63. if (!api_is_drh() && !api_is_platform_admin()) {
  64. $order_clause = $sort_by_first_name ? ' ORDER BY firstname, lastname' : ' ORDER BY lastname, firstname';
  65. if (isset($_GET["teacher_id"]) && $_GET["teacher_id"] != 0) {
  66. $teacher_id = intval($_GET["teacher_id"]);
  67. $sql_formateurs = "SELECT user_id,lastname,firstname,email
  68. FROM $tbl_user
  69. WHERE user_id='$teacher_id'".$order_clause;
  70. } else {
  71. $sql_formateurs = "SELECT user_id,lastname,firstname,email
  72. FROM $tbl_user
  73. WHERE status = 1".$order_clause;
  74. }
  75. $result_formateurs = Database::query($sql_formateurs);
  76. if (Database::num_rows($result_formateurs) > 0) {
  77. while ($row_formateurs = Database::fetch_array($result_formateurs)) {
  78. $formateurs[] = $row_formateurs;
  79. }
  80. }
  81. }
  82. $a_last_week = get_last_week();
  83. $last_week = date('Y-m-d',$a_last_week[0]).' '.get_lang('To').' '.date('Y-m-d', $a_last_week[6]);
  84. if ($is_western_name_order) {
  85. echo '<table class="data_table"><tr><th>'.get_lang('FirstName').'</th><th>'.get_lang('LastName').'</th><th>'.get_lang('TimeSpentLastWeek').'<br />'.$last_week.'</th><th>'.get_lang('Email').'</th><th>'.get_lang('AdminCourses').'</th><th>'.get_lang('Students').'</th></tr>';
  86. } else {
  87. echo '<table class="data_table"><tr><th>'.get_lang('LastName').'</th><th>'.get_lang('FirstName').'</th><th>'.get_lang('TimeSpentLastWeek').'<br />'.$last_week.'</th><th>'.get_lang('Email').'</th><th>'.get_lang('AdminCourses').'</th><th>'.get_lang('Students').'</th></tr>';
  88. }
  89. if ($is_western_name_order) {
  90. $header[] = get_lang('FirstName');
  91. $header[] = get_lang('LastName');
  92. } else {
  93. $header[] = get_lang('LastName');
  94. $header[] = get_lang('FirstName');
  95. }
  96. $header[] = get_lang('TimeSpentLastWeek');
  97. $header[] = get_lang('Email');
  98. $data = array();
  99. if (count($formateurs) > 0) {
  100. $i = 1;
  101. foreach ($formateurs as $formateur) {
  102. $user_id = $formateur["user_id"];
  103. $lastname = $formateur["lastname"];
  104. $firstname = $formateur["firstname"];
  105. $email = $formateur["email"];
  106. if ($i % 2 == 0) {
  107. $css_class = "row_odd";
  108. if ($i % 20 == 0 && $i != 0) {
  109. if ($is_western_name_order) {
  110. 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>';
  111. } else {
  112. 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>';
  113. }
  114. }
  115. } else {
  116. $css_class = "row_even";
  117. }
  118. $i++;
  119. if ($is_western_name_order) {
  120. $data[$user_id]["firstname"] = $firstname;
  121. $data[$user_id]["lastname"] = $lastname;
  122. } else {
  123. $data[$user_id]["lastname"] = $lastname;
  124. $data[$user_id]["firstname"] = $firstname;
  125. }
  126. $time_on_platform = api_time_to_hms(Tracking :: get_time_spent_on_the_platform($user_id,true));
  127. $data[$user_id]["timespentlastweek"] = $time_on_platform;
  128. $data[$user_id]["email"] = $email;
  129. if ($is_western_name_order) {
  130. 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>';
  131. } else {
  132. 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>';
  133. }
  134. }
  135. } else {
  136. // No results
  137. echo '<tr><td colspan="5" "align=center">'.get_lang("NoResults").'</td></tr>';
  138. }
  139. echo '</table>';
  140. if (isset($_POST['export']) || (api_is_drh() && isset($_GET['export']))) {
  141. MySpace::export_csv($header, $data, 'teachers.csv');
  142. }
  143. echo "<br /><br />";
  144. if (!api_is_drh()) {
  145. echo "<form method='post' action='teachers.php'><input type='submit' name='export' value='".get_lang('exportExcel')."'/><form>";
  146. }
  147. /*
  148. ==============================================================================
  149. FOOTER
  150. ==============================================================================
  151. */
  152. Display::display_footer();