exercise_admin.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?php
  2. /* For licensing terms, see /dokeos_license.txt */
  3. /**
  4. * Exercise administration
  5. * This script allows to manage an exercise. It is included from the script admin.php
  6. * @package dokeos.exercise
  7. * @author Olivier Brouckaert
  8. * @version $Id$
  9. */
  10. // name of the language file that needs to be included
  11. $language_file='exercice';
  12. include('exercise.class.php');
  13. include('question.class.php');
  14. include('answer.class.php');
  15. include('../inc/global.inc.php');
  16. include('exercise.lib.php');
  17. $this_section=SECTION_COURSES;
  18. if(!api_is_allowed_to_edit(null,true)) {
  19. api_not_allowed(true);
  20. }
  21. $htmlHeadXtra[] = '<script>
  22. function advanced_parameters()
  23. {
  24. if(document.getElementById(\'options\').style.display == \'none\')
  25. {
  26. document.getElementById(\'options\').style.display = \'block\';
  27. document.getElementById(\'img_plus_and_minus\').innerHTML=\'&nbsp;<img style="vertical-align:middle;" src="../img/div_hide.gif" alt="" />&nbsp;'.get_lang('AdvancedParameters').'\';
  28. } else {
  29. document.getElementById(\'options\').style.display = \'none\';
  30. document.getElementById(\'img_plus_and_minus\').innerHTML=\'&nbsp;<img style="vertical-align:middle;" src="../img/div_show.gif" alt="" />&nbsp;'.get_lang('AdvancedParameters').'\';
  31. }
  32. }
  33. function FCKeditor_OnComplete( editorInstance )
  34. {
  35. if (document.getElementById ( \'HiddenFCK\' + editorInstance.Name ))
  36. {
  37. HideFCKEditorByInstanceName (editorInstance.Name);
  38. }
  39. }
  40. function HideFCKEditorByInstanceName ( editorInstanceName )
  41. {
  42. if (document.getElementById ( \'HiddenFCK\' + editorInstanceName ).className == "HideFCKEditor" )
  43. {
  44. document.getElementById ( \'HiddenFCK\' + editorInstanceName ).className = "media";
  45. }
  46. }
  47. function show_media()
  48. {
  49. var my_display = document.getElementById(\'HiddenFCKexerciseDescription\').style.display;
  50. if(my_display== \'none\' || my_display == \'\')
  51. {
  52. document.getElementById(\'HiddenFCKexerciseDescription\').style.display = \'block\';
  53. document.getElementById(\'media_icon\').innerHTML=\'&nbsp;<img src="../img/looknfeelna.png" alt="" />&nbsp;'.get_lang('ExerciseDescription').'\';
  54. } else {
  55. document.getElementById(\'HiddenFCKexerciseDescription\').style.display = \'none\';
  56. document.getElementById(\'media_icon\').innerHTML=\'&nbsp;<img src="../img/looknfeel.png" alt="" />&nbsp;'.get_lang('ExerciseDescription').'\';
  57. }
  58. }
  59. function timelimit()
  60. {
  61. if(document.getElementById(\'options2\').style.display == \'none\')
  62. {
  63. document.getElementById(\'options2\').style.display = \'block\';
  64. } else {
  65. document.getElementById(\'options2\').style.display = \'none\';
  66. }
  67. }
  68. function feedbackselection()
  69. {
  70. var index = document.exercise_admin.exerciseFeedbackType.selectedIndex;
  71. if (index == \'1\')
  72. {
  73. document.exercise_admin.exerciseType[1].checked=true;
  74. document.exercise_admin.exerciseType[0].disabled=true;
  75. } else {
  76. document.exercise_admin.exerciseType[0].disabled=false;
  77. }
  78. }
  79. function option_time_expired()
  80. {
  81. if(document.getElementById(\'timercontrol\').style.display == \'none\')
  82. {
  83. document.getElementById(\'timercontrol\').style.display = \'block\';
  84. } else {
  85. document.getElementById(\'timercontrol\').style.display = \'none\';
  86. }
  87. }
  88. function check_per_page_one()
  89. {
  90. if (document.getElementById(\'divtimecontrol\').style.display==\'none\')
  91. {
  92. document.getElementById(\'divtimecontrol\').style.display=\'block\';
  93. document.getElementById(\'divtimecontrol\').display=block;
  94. document.getElementById(\'timecontrol\').display=none;
  95. }
  96. }
  97. function check_per_page_all()
  98. {
  99. if (document.getElementById(\'divtimecontrol\').style.display==\'block\')
  100. {
  101. document.getElementById(\'divtimecontrol\').style.display=\'none\';
  102. document.getElementById(\'enabletimercontroltotalminutes\').value=\'\';
  103. }
  104. }
  105. </script>';
  106. $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.js" type="text/javascript" language="javascript"></script>'; //jQuery
  107. $htmlHeadXtra[] = '<script type="text/javascript">
  108. function setFocus(){
  109. $("#exercise_title").focus();
  110. }
  111. $(document).ready(function () {
  112. setFocus();
  113. });
  114. </script>';
  115. /*********************
  116. * INIT EXERCISE
  117. *********************/
  118. include_once(api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
  119. $objExercise = new Exercise();
  120. /*********************
  121. * INIT FORM
  122. *********************/
  123. if(isset($_GET['exerciseId'])) {
  124. $form = new FormValidator('exercise_admin', 'post', api_get_self().'?'.api_get_cidreq().'&exerciseId='.$_GET['exerciseId']);
  125. $objExercise -> read (intval($_GET['exerciseId']));
  126. $form -> addElement ('hidden','edit','true');
  127. } else {
  128. $form = new FormValidator('exercise_admin','post',api_get_self().'?'.api_get_cidreq());
  129. $form -> addElement ('hidden','edit','false');
  130. }
  131. $objExercise -> createForm ($form);
  132. /*********************
  133. * VALIDATE FORM
  134. *********************/
  135. if ($form -> validate()) {
  136. $objExercise -> processCreation($form);
  137. if ($form -> getSubmitValue('edit') == 'true') {
  138. header('Location:exercice.php?message=ExerciseEdited&'.api_get_cidreq());
  139. } else {
  140. header('Location:admin.php?message=ExerciseAdded&exerciseId='.$objExercise->id);
  141. }
  142. } else {
  143. /*********************
  144. * DISPLAY FORM
  145. *********************/
  146. if (isset($_SESSION['gradebook'])) {
  147. $gradebook= $_SESSION['gradebook'];
  148. }
  149. if (!empty($gradebook) && $gradebook=='view') {
  150. $interbreadcrumb[]= array (
  151. 'url' => '../gradebook/'.$_SESSION['gradebook_dest'],
  152. 'name' => get_lang('Gradebook')
  153. );
  154. }
  155. $nameTools=get_lang('ExerciseManagement');
  156. $interbreadcrumb[] = array ("url"=>"exercice.php", "name"=> get_lang('Exercices'));
  157. Display::display_header($nameTools,"Exercise");
  158. if ($objExercise->feedbacktype==1)
  159. Display::display_normal_message(get_lang("DirectFeedbackCantModifyTypeQuestion"));
  160. if(api_get_setting('search_enabled')=='true' && !extension_loaded('xapian')) {
  161. Display::display_error_message(get_lang('SearchXapianModuleNotInstaled'));
  162. }
  163. // to hide the exercise description
  164. echo '<style> .media { display:none;}</style>';
  165. $form -> display ();
  166. }
  167. Display::display_footer();