resume_session.php 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <?php
  2. // $Id: course_list.php,v 1.15.2.1 2005/10/31 09:15:57 olivierb78 Exp $
  3. /*
  4. ==============================================================================
  5. Dokeos - elearning and course management software
  6. Copyright (c) 2004 Dokeos S.A.
  7. Copyright (c) 2003 University of Ghent (UGent)
  8. Copyright (c) 2001 Universite catholique de Louvain (UCL)
  9. Copyright (c) Olivier Brouckaert
  10. For a full list of contributors, see "credits.txt".
  11. The full license can be read in "license.txt".
  12. This program is free software; you can redistribute it and/or
  13. modify it under the terms of the GNU General Public License
  14. as published by the Free Software Foundation; either version 2
  15. of the License, or (at your option) any later version.
  16. See the GNU General Public License for more details.
  17. Contact: Dokeos, 181 rue Royale, B-1000 Brussels, Belgium, info@dokeos.com
  18. ==============================================================================
  19. */
  20. /**
  21. ==============================================================================
  22. @author Bart Mollet
  23. * @package dokeos.admin
  24. ==============================================================================
  25. */
  26. /*
  27. ==============================================================================
  28. INIT SECTION
  29. ==============================================================================
  30. */
  31. $langFile = 'admin';
  32. $cidReset = true;
  33. require ('../inc/global.inc.php');
  34. api_protect_admin_script();
  35. $tool_name = "Résumé de la session";
  36. $interbreadcrumb[]=array("url" => "index.php","name" => get_lang('AdministrationTools'));
  37. $interbreadcrumb[]=array("url" => "session_list.php","name" => "Liste des sessions");
  38. $tbl_session=Database::get_main_table(MAIN_SESSION_TABLE);
  39. $tbl_session_rel_class=Database::get_main_table(MAIN_SESSION_CLASS_TABLE);
  40. $tbl_session_rel_course=Database::get_main_table(MAIN_SESSION_COURSE_TABLE);
  41. $tbl_course=Database::get_main_table(MAIN_COURSE_TABLE);
  42. $tbl_user=Database::get_main_table(MAIN_USER_TABLE);
  43. $tbl_session_rel_user=Database::get_main_table(MAIN_SESSION_USER_TABLE);
  44. $tbl_session_rel_course_rel_user=Database::get_main_table(MAIN_SESSION_COURSE_USER_TABLE);
  45. $tbl_class=Database::get_main_table(MAIN_CLASS_TABLE);
  46. $tbl_class_rel_user=Database::get_main_table(MAIN_CLASS_USER_TABLE);
  47. $id_session = $_GET['id_session'];
  48. if($_GET['action'] == 'delete')
  49. {
  50. $isChecked = $_GET['isChecked'];
  51. if(is_array($idChecked))
  52. {
  53. $idChecked="'".implode("','",$idChecked)."'";
  54. api_sql_query("DELETE FROM $tbl_session_rel_course WHERE id_session='$id_session' AND course_code IN($idChecked)",__FILE__,__LINE__);
  55. $nbr_affected_rows=mysql_affected_rows();
  56. api_sql_query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code IN($idChecked)",__FILE__,__LINE__);
  57. api_sql_query("UPDATE $tbl_session SET nbr_courses=nbr_courses-$nbr_affected_rows WHERE id='$id_session'",__FILE__,__LINE__);
  58. }
  59. if(!empty($_GET['class'])){
  60. api_sql_query("DELETE FROM $tbl_session_rel_class WHERE session_id='$id_session' AND class_id=".$_GET['class'],__FILE__,__LINE__);
  61. $nbr_affected_rows=mysql_affected_rows();
  62. api_sql_query("UPDATE $tbl_session SET nbr_classes=nbr_classes-$nbr_affected_rows WHERE id='$id_session'",__FILE__,__LINE__);
  63. }
  64. if(!empty($_GET['user'])){
  65. api_sql_query("DELETE FROM $tbl_session_rel_user WHERE id_session='$id_session' AND id_user=".$_GET['user'],__FILE__,__LINE__);
  66. $nbr_affected_rows=mysql_affected_rows();
  67. api_sql_query("UPDATE $tbl_session SET nbr_users=nbr_users-$nbr_affected_rows WHERE id='$id_session'",__FILE__,__LINE__);
  68. api_sql_query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND id_user=".$_GET['user'],__FILE__,__LINE__);
  69. $nbr_affected_rows=mysql_affected_rows();
  70. api_sql_query("UPDATE $tbl_session_rel_course SET nbr_users=nbr_users-$nbr_affected_rows WHERE id_session='$id_session'",__FILE__,__LINE__);
  71. }
  72. }
  73. $sql = 'SELECT name, nbr_courses, nbr_users, nbr_classes, DATE_FORMAT(date_start,"%d-%m-%Y") as date_start, DATE_FORMAT(date_end,"%d-%m-%Y") as date_end, lastname, firstname, username
  74. FROM '.$tbl_session.'
  75. LEFT JOIN '.$tbl_user.'
  76. ON id_coach = user_id
  77. WHERE '.$tbl_session.'.id='.$id_session;
  78. $rs = api_sql_query($sql, __FILE__, __LINE__);
  79. $session = api_store_result($rs);
  80. $session = $session[0];
  81. Display::display_header($tool_name);
  82. api_display_tool_title($tool_name);
  83. ?>
  84. <!-- General properties -->
  85. <table class="data_table" width="100%">
  86. <tr>
  87. <th colspan="2">Propriétés générales
  88. <a href="session_edit.php?page=resume_session.php&id=<?php echo $id_session; ?>"><img src="../img/edit.gif" border="0" align="absmiddle" title="Editer"></a></th>
  89. </th>
  90. </tr>
  91. <tr>
  92. <td>Nom de la session :</td>
  93. <td><?php echo $session['name'] ?></td>
  94. </tr>
  95. <tr>
  96. <td>Coach général :</td>
  97. <td><?php echo $session['lastname'].' '.$session['firstname'].' ('.$session['username'].')' ?></td>
  98. </tr>
  99. <tr>
  100. <td>Dates :</td>
  101. <td>
  102. <?php
  103. if($session['date_start']=='00-00-0000')
  104. echo 'Pas de limites de temps';
  105. else
  106. echo 'Du '.$session['date_start'].' au '.$session['date_end'];
  107. ?>
  108. </td>
  109. </tr>
  110. </table>
  111. <br />
  112. <!--List of courses -->
  113. <table class="data_table" width="100%">
  114. <tr>
  115. <th colspan="4">Liste des cours
  116. <a href="add_courses_to_session.php?page=resume_session.php&id_session=<?php echo $id_session; ?>"><img src="../img/edit.gif" border="0" align="absmiddle" title="Editer"></a></th>
  117. </th>
  118. </tr>
  119. <tr>
  120. <tr>
  121. <th width="35%">Titre du cours</th>
  122. <th width="30%">Coach du cours</th>
  123. <th width="20%">Nombre d'utilisateurs</th>
  124. <th width="15%">Actions</th>
  125. </tr>
  126. </tr>
  127. <?php
  128. if($session['nbr_courses']==0){
  129. echo '
  130. <tr>
  131. <td colspan="4">Pas de cours pour cette session</td>
  132. </tr>';
  133. }
  134. else {
  135. $sql = "SELECT code,title,nbr_users, lastname, firstname, username
  136. FROM $tbl_course,$tbl_session_rel_course
  137. LEFT JOIN $tbl_user
  138. ON $tbl_session_rel_course.id_coach = $tbl_user.user_id
  139. WHERE course_code=code
  140. AND id_session='$id_session'
  141. ORDER BY title";
  142. $result=api_sql_query($sql,__FILE__,__LINE__);
  143. $courses=api_store_result($result);
  144. foreach($courses as $course){
  145. if(empty($course['username']))
  146. $coach = 'Aucun';
  147. else
  148. $coach = $course['lastname'].' '.$course['firstname'].' ('.$course['username'].')';
  149. echo '
  150. <tr>
  151. <td>'.$course['title'].' ('.$course['code'].')</td>
  152. <td>'.$coach.'</td>
  153. <td>'.$course['nbr_users'].'</td>
  154. <td>
  155. <a href="session_course_edit.php?id_session='.$id_session.'&page=resume_session.php&course_code='.$course['code'].'"><img src="../img/edit.gif" border="0" align="absmiddle" title="Editer"></a>
  156. <a href="'.$_SERVER['PHP_SELF'].'?id_session='.$id_session.'&action=delete&idChecked[]='.$course['code'].'" onclick="javascript:if(!confirm(\'Veuillez confirmer votre choix.\')) return false;"><img src="../img/delete.gif" border="0" align="absmiddle" title="Effacer"></a>
  157. </td>
  158. </tr>';
  159. }
  160. }
  161. ?>
  162. </table>
  163. <br />
  164. <!--List of courses -->
  165. <table class="data_table" width="100%">
  166. <tr>
  167. <th colspan="4">Liste des utilisateurs
  168. <a href="add_users_to_session.php?page=resume_session.php&id_session=<?php echo $id_session; ?>"><img src="../img/edit.gif" border="0" align="absmiddle" title="Editer"></a></th>
  169. </th>
  170. </tr>
  171. </tr>
  172. <?php
  173. if($session['nbr_users']==0){
  174. echo '
  175. <tr>
  176. <td colspan="2">Pas d\'utilisateurs pour cette session</td>
  177. </tr>';
  178. }
  179. else {
  180. /*
  181. $sql = "SELECT $tbl_user.user_id, lastname, firstname, username, name as class_name, $tbl_class.id as class_id
  182. FROM $tbl_user
  183. INNER JOIN $tbl_class_rel_user
  184. ON $tbl_class_rel_user.user_id = $tbl_user.user_id
  185. INNER JOIN $tbl_class
  186. ON $tbl_class_rel_user.class_id = $tbl_class.id
  187. INNER JOIN $tbl_session_rel_class
  188. ON $tbl_session_rel_class.class_id = $tbl_class_rel_user.class_id
  189. AND session_id='$id_session'
  190. ORDER BY lastname";
  191. $result=api_sql_query($sql,__FILE__,__LINE__);
  192. $classesusers=api_store_result($result);
  193. $classes = array();
  194. foreach($classesusers as $user){
  195. if(!in_array($user['class_id'],$classes)){
  196. echo '<tr>
  197. <td width="90%">
  198. <b>Classe : '.$user['class_name'].'</b>
  199. </td>
  200. <td>
  201. <a href="'.$_SERVER['PHP_SELF'].'?id_session='.$id_session.'&action=delete&class='.$user['class_id'].'" onclick="javascript:if(!confirm(\'Veuillez confirmer votre choix.\')) return false;"><img src="../img/delete.gif" border="0" align="absmiddle" title="Effacer"></a>
  202. </td>
  203. </tr>';
  204. $classes[]=$user['class_id'];
  205. }
  206. echo '
  207. <tr>
  208. <td colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$user['lastname'].' '.$user['firstname'].' ('.$user['username'].')</td>
  209. </tr>';
  210. }
  211. */ // classe development, obsolete for the moment
  212. $sql = 'SELECT '.$tbl_user.'.user_id, lastname, firstname, username
  213. FROM '.$tbl_user.'
  214. INNER JOIN '.$tbl_session_rel_user.'
  215. ON '.$tbl_user.'.user_id = '.$tbl_session_rel_user.'.id_user
  216. AND '.$tbl_session_rel_user.'.id_session = '.$id_session.'
  217. ORDER BY lastname, firstname';
  218. $result=api_sql_query($sql,__FILE__,__LINE__);
  219. $users=api_store_result($result);
  220. foreach($users as $user){
  221. echo '<tr>
  222. <td width="90%">
  223. <b>'.$user['lastname'].' '.$user['firstname'].' ('.$user['username'].')</b>
  224. </td>
  225. <td>
  226. <a href="'.$_SERVER['PHP_SELF'].'?id_session='.$id_session.'&action=delete&user='.$user['user_id'].'" onclick="javascript:if(!confirm(\'Veuillez confirmer votre choix.\')) return false;"><img src="../img/delete.gif" border="0" align="absmiddle" title="Effacer"></a>
  227. </td>
  228. </tr>';
  229. }
  230. }
  231. ?>
  232. </table>
  233. <?php
  234. /*
  235. ==============================================================================
  236. FOOTER
  237. ==============================================================================
  238. */
  239. Display :: display_footer();
  240. ?>