exercise_admin.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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. if(document.getElementById(\'options\').style.display == \'none\') {
  24. document.getElementById(\'options\').style.display = \'block\';
  25. document.getElementById(\'img_plus_and_minus\').innerHTML=\'&nbsp;<img style="vertical-align:middle;" src="../img/div_hide.gif" alt="" />&nbsp;'.get_lang('AdvancedParameters').'\';
  26. } else {
  27. document.getElementById(\'options\').style.display = \'none\';
  28. document.getElementById(\'img_plus_and_minus\').innerHTML=\'&nbsp;<img style="vertical-align:middle;" src="../img/div_show.gif" alt="" />&nbsp;'.get_lang('AdvancedParameters').'\';
  29. }
  30. }
  31. function FCKeditor_OnComplete( editorInstance )
  32. {
  33. if (document.getElementById ( \'HiddenFCK\' + editorInstance.Name )) {
  34. HideFCKEditorByInstanceName (editorInstance.Name);
  35. }
  36. }
  37. function HideFCKEditorByInstanceName ( editorInstanceName ) {
  38. if (document.getElementById ( \'HiddenFCK\' + editorInstanceName ).className == "HideFCKEditor" ) {
  39. document.getElementById ( \'HiddenFCK\' + editorInstanceName ).className = "media";
  40. }
  41. }
  42. function show_media() {
  43. var my_display = document.getElementById(\'HiddenFCKexerciseDescription\').style.display;
  44. if(my_display== \'none\' || my_display == \'\') {
  45. document.getElementById(\'HiddenFCKexerciseDescription\').style.display = \'block\';
  46. document.getElementById(\'media_icon\').innerHTML=\'&nbsp;<img src="../img/looknfeelna.png" alt="" />&nbsp;'.get_lang('ExerciseDescription').'\';
  47. } else {
  48. document.getElementById(\'HiddenFCKexerciseDescription\').style.display = \'none\';
  49. document.getElementById(\'media_icon\').innerHTML=\'&nbsp;<img src="../img/looknfeel.png" alt="" />&nbsp;'.get_lang('ExerciseDescription').'\';
  50. }
  51. }
  52. function timelimit() {
  53. if(document.getElementById(\'options2\').style.display == \'none\') {
  54. document.getElementById(\'options2\').style.display = \'block\';
  55. } else {
  56. document.getElementById(\'options2\').style.display = \'none\';
  57. }
  58. }
  59. function feedbackselection()
  60. {
  61. var index = document.exercise_admin.exerciseFeedbackType.selectedIndex;
  62. if (index == \'1\') {
  63. document.exercise_admin.exerciseType[1].checked=true;
  64. document.exercise_admin.exerciseType[0].disabled=true;
  65. } else {
  66. document.exercise_admin.exerciseType[0].disabled=false;
  67. }
  68. }
  69. </script>';
  70. /*********************
  71. * INIT EXERCISE
  72. *********************/
  73. include_once(api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
  74. $objExercise = new Exercise();
  75. /*********************
  76. * INIT FORM
  77. *********************/
  78. if(isset($_GET['exerciseId'])) {
  79. $form = new FormValidator('exercise_admin', 'post', api_get_self().'?exerciseId='.$_GET['exerciseId']);
  80. $objExercise -> read (intval($_GET['exerciseId']));
  81. $form -> addElement ('hidden','edit','true');
  82. } else {
  83. $form = new FormValidator('exercise_admin');
  84. $form -> addElement ('hidden','edit','false');
  85. }
  86. $objExercise -> createForm ($form);
  87. /*********************
  88. * VALIDATE FORM
  89. *********************/
  90. if ($form -> validate()) {
  91. $objExercise -> processCreation($form);
  92. if ($form -> getSubmitValue('edit') == 'true') {
  93. header('Location:exercice.php?message=ExerciseEdited&'.api_get_cidreq());
  94. } else {
  95. header('Location:admin.php?message=ExerciseAdded&exerciseId='.$objExercise->id);
  96. }
  97. } else {
  98. /*********************
  99. * DISPLAY FORM
  100. *********************/
  101. if (isset($_SESSION['gradebook'])) {
  102. $gradebook= $_SESSION['gradebook'];
  103. }
  104. if (!empty($gradebook) && $gradebook=='view') {
  105. $interbreadcrumb[]= array (
  106. 'url' => '../gradebook/'.$_SESSION['gradebook_dest'],
  107. 'name' => get_lang('Gradebook')
  108. );
  109. }
  110. $nameTools=get_lang('ExerciseManagement');
  111. $interbreadcrumb[] = array ("url"=>"exercice.php", "name"=> get_lang('Exercices'));
  112. Display::display_header($nameTools,"Exercise");
  113. if ($objExercise->feedbacktype==1)
  114. Display::display_normal_message(get_lang("DirectFeedbackCantModifyTypeQuestion"));
  115. if(api_get_setting('search_enabled')=='true' && !extension_loaded('xapian')) {
  116. Display::display_error_message(get_lang('SearchXapianModuleNotInstaled'));
  117. }
  118. // to hide the exercise description
  119. echo '<style> .media { display:none;}</style>';
  120. $form -> display ();
  121. }
  122. Display::display_footer();