courses_list.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * View (MVC patter) for courses
  5. * @author Christian Fasanando <christian1827@gmail.com> - Beeznest
  6. * @package chamilo.auth
  7. */
  8. // Acces rights: anonymous users can't do anything usefull here.
  9. api_block_anonymous_users();
  10. $stok = Security::get_token();
  11. $courses_without_category = $courses_in_category[0];
  12. ?>
  13. <!-- Actions: The menu with the different options in cathe course management -->
  14. <div id="actions" class="actions">
  15. <?php if ($action != 'createcoursecategory') { ?>
  16. &nbsp;<a href="<?php echo api_get_self(); ?>?action=createcoursecategory"><?php echo Display::return_icon('new_folder.png', get_lang('CreateCourseCategory'),'','32'); ?></a>
  17. <?php } ?>
  18. </div>
  19. <table class="data_table">
  20. <?php
  21. if (!empty($message)) {
  22. Display::display_confirmation_message($message, false);
  23. }
  24. // COURSES WITHOUT CATEGORY
  25. if (!empty($courses_without_category)) {
  26. $number_of_courses = count($courses_without_category);
  27. $key = 0;
  28. foreach ($courses_without_category as $course) {
  29. echo '<tr>';
  30. if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
  31. $icon_title = get_lang('CourseDetails') . ' - ' . $course['title'];
  32. ?>
  33. <td>
  34. <a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code'] ?>" title="<?php echo $icon_title ?>" class="thickbox">
  35. <?php echo Display::return_icon('info.png', $icon_title, '','22'); ?>
  36. </a>
  37. </td>
  38. <?php } ?>
  39. <td>
  40. <a name="course<?php echo $course['code']; ?>"></a>
  41. <strong><?php echo $course['title']; ?></strong><br />
  42. <?php
  43. if (api_get_setting('display_coursecode_in_courselist') == 'true') { echo $course['visual_code']; }
  44. if (api_get_setting('display_coursecode_in_courselist') == 'true' && api_get_setting('display_teacher_in_courselist') == 'true') { echo " - "; }
  45. if (api_get_setting('display_teacher_in_courselist') == 'true') { echo $course['tutor']; }
  46. ?>
  47. </td>
  48. <td valign="top">
  49. <!-- the edit icon OR the edit dropdown list -->
  50. <?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) {
  51. $edit_course = Security::remove_XSS($_GET['edit']);
  52. ?>
  53. <div style="float:left;">
  54. <form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
  55. <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
  56. <input type="hidden" name="course_2_edit_category" value="<?php echo $edit_course; ?>" />
  57. <select name="course_categories">
  58. <option value="0"><?php echo get_lang("NoCourseCategory"); ?></option>
  59. <?php foreach ($user_course_categories as $row) { ?>
  60. <option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?></option>
  61. <?php } ?>
  62. </select>
  63. <button class="save" type="submit" name="submit_change_course_category"><?php echo get_lang('Ok') ?></button>
  64. </form>
  65. </div>
  66. <?php } ?>
  67. <div style="float:left;">
  68. <?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) { ?>
  69. <?php echo Display::display_icon('edit_na.png', get_lang('Edit'),'',22); ?>
  70. <?php } else { ?>
  71. <a href="courses.php?action=<?php echo $action; ?>&amp;edit=<?php echo $course['code']; ?>&amp;sec_token=<?php echo $stok; ?>">
  72. <?php echo Display::display_icon('edit.png', get_lang('Edit'),'',22); ?>
  73. </a>
  74. <?php } ?>
  75. <!-- up /down icons-->
  76. <?php if ($key > 0) { ?>
  77. <a href="courses.php?action=<?php echo $action; ?>&amp;move=up&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
  78. <?php echo Display::display_icon('up.png', get_lang('Up'),'',22) ?>
  79. </a>
  80. <?php } else {
  81. echo Display::display_icon('up_na.png', get_lang('Up'),'',22);
  82. }
  83. if ($key < $number_of_courses - 1) { ?>
  84. <a href="courses.php?action=<?php echo $action; ?>&amp;move=down&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
  85. <?php echo Display::display_icon('down.png', get_lang('Down'),'',22); ?>
  86. </a>
  87. <?php } else {
  88. echo Display::display_icon('down_na.png', get_lang('Down'),'',22);
  89. }?>
  90. </div>
  91. <!-- cancel subscrioption-->
  92. <?php if ($course['status'] != 1) {
  93. if ($course['unsubscr'] == 1) {
  94. ?>
  95. <!-- changed link to submit to avoid action by the search tool indexer -->
  96. <div style="float:left; margin-right:10px;">
  97. <form style="width:20px;"action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding())) ?>')) return false;">
  98. <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
  99. <input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />
  100. <input type="image" name="unsub" style="border-color:#fff" src="<?php echo api_get_path(WEB_IMG_PATH).'/icons/22/unsubscribe_course.png'; ?>" title="<?php echo get_lang('_unsubscribe') ?>" alt="<?php echo get_lang('_unsubscribe'); ?>" />
  101. </form>
  102. </div>
  103. <?php } else {
  104. echo get_lang('UnsubscribeNotAllowed');
  105. }
  106. } else {
  107. echo get_lang('CourseAdminUnsubscribeNotAllowed');
  108. }
  109. ?>
  110. </td>
  111. </tr>
  112. <?php $key++;
  113. }
  114. } ?>
  115. <!-- COURSES WITH CATEGORIES -->
  116. <?php if (!empty($user_course_categories)) {
  117. foreach ($user_course_categories as $row) {
  118. if (isset($_GET['categoryid']) && $_GET['categoryid'] == $row['id']) {
  119. ?>
  120. <!-- We display the edit form for the category -->
  121. <tr><td colspan="2" class="user_course_category">
  122. <a name="category<?php echo $row['id']; ?>"></a>
  123. <form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
  124. <input type="hidden" name="edit_course_category" value="<?php echo $row['id']; ?>" />
  125. <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
  126. <input type="text" name="title_course_category" value="<?php echo $row['title']; ?>" />
  127. <button class="save" type="submit" name="submit_edit_course_category"><?php echo get_lang('Ok'); ?></button>
  128. </form>
  129. <?php } else { ?>
  130. <tr><td colspan="2" class="user_course_category">
  131. <a name="category<?php echo $row['id']; ?>"></a>
  132. <?php echo $row['title']; ?>
  133. <?php } ?>
  134. </td><td class="user_course_category">
  135. <!-- display category icons -->
  136. <?php $max_category_key = count($user_course_categories);
  137. if ($action != 'unsubscribe') { ?>
  138. <table>
  139. <tr>
  140. <td>
  141. <?php if ($row['id'] != $user_course_categories[0]['id']) { ?>
  142. <a href="courses.php?action=<?php echo $action ?>&amp;move=up&amp;category=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>">
  143. <?php echo Display::return_icon('up.png', get_lang('Up'),'',22); ?>
  144. </a>
  145. <?php } ?>
  146. </td>
  147. <td rowspan="2">
  148. <a href="courses.php?action=sortmycourses&amp;categoryid=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>#category<?php echo $row['id']; ?>">
  149. <?php echo Display::display_icon('edit.png', get_lang('Edit'),'',22); ?>
  150. </a>
  151. </td>
  152. <td rowspan=\"2\">
  153. <a href="courses.php?action=deletecoursecategory&amp;id=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>">
  154. <?php echo Display::display_icon('delete.png', get_lang('Delete'), array('onclick' => "javascript: if (!confirm('".addslashes(api_htmlentities(get_lang("CourseCategoryAbout2bedeleted"), ENT_QUOTES, api_get_system_encoding()))."')) return false;"),22) ?>
  155. </a>
  156. </td>
  157. </tr>
  158. <tr>
  159. <td>
  160. <?php if ($row['id'] != $user_course_categories[$max_category_key - 1]['id']) { ?>
  161. <a href="courses.php?action=<?php echo $action; ?>&amp;move=down&amp;category=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>">
  162. <?php echo Display::return_icon('down.png', get_lang('Down'),'',22); ?>
  163. </a>
  164. <?php } ?>
  165. </td>
  166. </tr>
  167. </table>
  168. <?php } ?>
  169. </td></tr>
  170. <!-- Show the courses inside this category -->
  171. <?php
  172. $number_of_courses = count($courses_in_category[$row['id']]);
  173. $key = 0;
  174. if (!empty($courses_in_category[$row['id']])) {
  175. foreach ($courses_in_category[$row['id']] as $course) {
  176. ?>
  177. <tr>
  178. <?php if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
  179. $icon_title = get_lang('CourseDetails') . ' - ' . $course['title'];
  180. ?>
  181. <td>
  182. <a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code'] ?>" title="<?php echo $icon_title ?>" class="thickbox"><?php echo Display::return_icon('info.png', $icon_title,'','22') ?></a>
  183. </td>
  184. <?php } ?>
  185. <td>
  186. <a name="course<?php echo $course['code']; ?>"></a>
  187. <strong><?php echo $course['title']; ?></strong><br />
  188. <?php
  189. if (api_get_setting('display_coursecode_in_courselist') == 'true') { echo $course['visual_code']; }
  190. if (api_get_setting('display_coursecode_in_courselist') == 'true' && api_get_setting('display_teacher_in_courselist') == 'true') { echo " - "; }
  191. if (api_get_setting('display_teacher_in_courselist') == 'true') { echo $course['tutor']; }
  192. ?>
  193. </td>
  194. <td valign="top">
  195. <!-- display course icons -->
  196. <table><tr><td>
  197. <?php if ($key > 0) { ?>
  198. <a href="courses.php?action=<?php echo $action; ?>&amp;move=up&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
  199. <?php echo Display::display_icon('up.png', get_lang('Up'),'',22); ?>
  200. </a>
  201. <?php } ?>
  202. </td>
  203. <?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) {
  204. $edit_course = Security::remove_XSS($_GET['edit']);
  205. ?>
  206. <td rowspan="2" valign="top">
  207. <form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
  208. <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
  209. <input type="hidden" name="course_2_edit_category" value="<?php echo $edit_course; ?>" />
  210. <select name="course_categories">
  211. <option value="0"><?php echo get_lang("NoCourseCategory"); ?></option>
  212. <?php foreach ($user_course_categories as $row) { ?>
  213. <option value="<?php echo $row['id'] ?>"><?php echo $row['title']; ?></option>
  214. <?php } ?>
  215. </select>
  216. <button class="save" type="submit" name="submit_change_course_category"><?php echo get_lang('Ok'); ?></button>
  217. </form>
  218. </td>
  219. <?php } else { ?>
  220. <td rowspan="2" valign="middle"><a href="courses.php?action=<?php echo $action; ?>&amp;edit=<?php echo $course['code']; ?>&amp;sec_token=<?php echo $stok; ?>">
  221. <?php echo Display::display_icon('edit.png', get_lang('Edit'),'',22); ?>
  222. </a></td>
  223. <?php } ?>
  224. <td rowspan="2" valign="top" class="invisible">
  225. <?php if ($course['status'] != 1) {
  226. if ($course['unsubscr'] == 1) {
  227. ?>
  228. <form action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding()))?>')) return false">
  229. <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
  230. <input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />
  231. <input type="image" name="unsub" style="border-color:#fff" src="<?php echo api_get_path(WEB_IMG_PATH); ?>icons/22/unsubscribe_course.png" title="<?php echo get_lang('_unsubscribe') ?>" alt="<?php echo get_lang('_unsubscribe') ?>" /></form>
  232. <?php } else {
  233. echo get_lang('UnsubscribeNotAllowed');
  234. }
  235. } else {
  236. echo get_lang('CourseAdminUnsubscribeNotAllowed');
  237. }
  238. ?>
  239. </td>
  240. </tr><tr><td>
  241. <?php if ($key < $number_of_courses - 1) { ?>
  242. <a href="courses.php?action=<?php echo $action; ?>&amp;move=down&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
  243. <?php echo Display::display_icon('down.png', get_lang('Down'),'',22); ?>
  244. </a>
  245. <?php } ?>
  246. </td></tr></table>
  247. </td>
  248. </tr>
  249. <?php $key++;
  250. }
  251. }
  252. }
  253. }
  254. ?>
  255. </table>