subscribe_class2course.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * @package chamilo.admin
  5. */
  6. /**
  7. * Code
  8. */
  9. // name of the language file that needs to be included
  10. $language_file = 'admin';
  11. $cidReset = true;
  12. require ('../inc/global.inc.php');
  13. $this_section=SECTION_PLATFORM_ADMIN;
  14. require_once (api_get_path(LIBRARY_PATH).'course.lib.php');
  15. require_once (api_get_path(LIBRARY_PATH).'classmanager.lib.php');
  16. api_protect_admin_script();
  17. $classes = $_GET['classes'];
  18. $form_sent = 0;
  19. $error_message = '';
  20. $first_letter_class = '';
  21. $first_letter_course = '';
  22. $courses = array ();
  23. $classes = array();
  24. $tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
  25. $tbl_class = Database :: get_main_table(TABLE_MAIN_CLASS);
  26. $tool_name = get_lang('AddClassesToACourse');
  27. $interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
  28. Display :: display_header($tool_name);
  29. //api_display_tool_title($tool_name);
  30. if ($_POST['formSent'])
  31. {
  32. $form_sent = $_POST['formSent'];
  33. $classes = is_array($_POST['ClassList']) ? $_POST['ClassList'] : array();
  34. $courses = is_array($_POST['CourseList']) ? $_POST['CourseList'] : array();
  35. $first_letter_class = $_POST['firstLetterClass'];
  36. $first_letter_course = $_POST['firstLetterCourse'];
  37. if ($form_sent == 1)
  38. {
  39. if (count($classes) == 0 || count($courses) == 0)
  40. {
  41. Display::display_error_message(get_lang('AtLeastOneClassAndOneCourse'));
  42. }
  43. elseif (api_substr($_POST['formSubmit'], -2) == '>>') // add classes to courses
  44. {
  45. foreach ($courses as $course_code)
  46. {
  47. foreach ($classes as $class_id)
  48. {
  49. ClassManager :: subscribe_to_course($class_id, $course_code);
  50. }
  51. }
  52. Display::display_normal_message(get_lang('ClassesSubscribed'));
  53. }
  54. else // remove classes from courses
  55. {
  56. foreach ($courses as $course_code)
  57. {
  58. foreach ($classes as $class_id)
  59. {
  60. ClassManager :: unsubscribe_from_course($class_id, $course_code);
  61. }
  62. }
  63. Display::display_normal_message(get_lang('ClassesUnsubscribed'));
  64. }
  65. }
  66. }
  67. $sql = "SELECT id,name FROM $tbl_class WHERE name LIKE '".$first_letter_class."%' ORDER BY ". (count($classes) > 0 ? "(id IN('".implode("','", $classes)."')) DESC," : "")." name";
  68. $result = Database::query($sql);
  69. $db_classes = Database::store_result($result);
  70. $sql = "SELECT code,visual_code,title FROM $tbl_course WHERE visual_code LIKE '".$first_letter_course."%' ORDER BY ". (count($courses) > 0 ? "(code IN('".implode("','", $courses)."')) DESC," : "")." visual_code";
  71. $result = Database::query($sql);
  72. $db_courses = Database::store_result($result);
  73. if (!empty ($error_message))
  74. {
  75. Display :: display_normal_message($error_message);
  76. }
  77. ?>
  78. <form name="formulaire" method="post" action="<?php echo api_get_self(); ?>" style="margin:0px;">
  79. <input type="hidden" name="formSent" value="1"/>
  80. <table border="0" cellpadding="5" cellspacing="0" width="100%">
  81. <tr>
  82. <td width="40%" align="center">
  83. <b><?php echo get_lang('ClassList'); ?></b>
  84. <br/><br/>
  85. <?php echo get_lang('FirstLetterClass'); ?> :
  86. <select name="firstLetterClass" onchange="javascript:document.formulaire.formSent.value='2'; document.formulaire.submit();">
  87. <option value="">--</option>
  88. <?php
  89. echo Display::get_alphabet_options($first_letter_class);
  90. ?>
  91. </select>
  92. </td>
  93. <td width="20%">&nbsp;</td>
  94. <td width="40%" align="center">
  95. <b><?php echo get_lang('CourseList'); ?> :</b>
  96. <br/><br/>
  97. <?php echo get_lang('FirstLetterCourse'); ?> :
  98. <select name="firstLetterCourse" onchange="javascript:document.formulaire.formSent.value='2'; document.formulaire.submit();">
  99. <option value="">--</option>
  100. <?php
  101. echo Display::get_alphabet_options($first_letter_course);
  102. ?>
  103. </select>
  104. </td>
  105. </tr>
  106. <tr>
  107. <td width="40%" align="center">
  108. <select name="ClassList[]" multiple="multiple" size="20" style="width:230px;">
  109. <?php
  110. foreach ($db_classes as $class)
  111. {
  112. ?>
  113. <option value="<?php echo $class['id']; ?>" <?php if(in_array($class['id'],$classes)) echo 'selected="selected"'; ?>><?php echo $class['name']; ?></option>
  114. <?php
  115. }
  116. ?>
  117. </select>
  118. </td>
  119. <td width="20%" valign="middle" align="center">
  120. <input type="submit" name="formSubmit" value="<?php echo get_lang('AddToThatCourse'); ?> &gt;&gt;"/>
  121. <br/>
  122. <input type="submit" name="formSubmit" value="&lt;&lt; <?php echo get_lang('DeleteSelectedClasses'); ?>"/>
  123. </td>
  124. <td width="40%" align="center">
  125. <select name="CourseList[]" multiple="multiple" size="20" style="width:230px;">
  126. <?php
  127. foreach ($db_courses as $course)
  128. {
  129. ?>
  130. <option value="<?php echo $course['code']; ?>" <?php if(in_array($course['code'],$courses)) echo 'selected="selected"'; ?>><?php echo '('.$course['visual_code'].') '.$course['title']; ?></option>
  131. <?php
  132. }
  133. ?>
  134. </select>
  135. </td>
  136. </tr>
  137. </table>
  138. </form>
  139. <?php
  140. /*
  141. ==============================================================================
  142. FOOTER
  143. ==============================================================================
  144. */
  145. Display :: display_footer();
  146. ?>