|
|
|
@ -548,7 +548,8 @@ class Exercise { |
|
|
|
|
random_answers='".Database::escape_string($random_answers)."', |
|
|
|
|
active='".Database::escape_string($active)."', |
|
|
|
|
feedback_type='".Database::escape_string($feedbacktype)."', |
|
|
|
|
start_time='$start_time',end_time='$end_time', |
|
|
|
|
start_time = '$start_time', |
|
|
|
|
end_time = '$end_time', |
|
|
|
|
max_attempt='".Database::escape_string($attempts)."', |
|
|
|
|
expired_time='".Database::escape_string($expired_time)."', |
|
|
|
|
propagate_neg='".Database::escape_string($propagate_neg)."', |
|
|
|
@ -562,7 +563,7 @@ class Exercise { |
|
|
|
|
api_item_property_update($_course, TOOL_QUIZ, $id,'QuizUpdated',api_get_user_id()); |
|
|
|
|
|
|
|
|
|
if (api_get_setting('search_enabled')=='true') { |
|
|
|
|
$this -> search_engine_edit(); |
|
|
|
|
$this->search_engine_edit(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else {// creates a new exercise |
|
|
|
@ -599,7 +600,7 @@ class Exercise { |
|
|
|
|
|
|
|
|
|
api_item_property_update($_course, TOOL_QUIZ, $this->id,'QuizAdded',api_get_user_id()); |
|
|
|
|
if (api_get_setting('search_enabled')=='true' && extension_loaded('xapian')) { |
|
|
|
|
$this -> search_engine_save(); |
|
|
|
|
$this->search_engine_save(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -827,7 +828,7 @@ class Exercise { |
|
|
|
|
api_item_property_update($_course, TOOL_QUIZ, $this->id,'QuizDeleted',api_get_user_id()); |
|
|
|
|
|
|
|
|
|
if (api_get_setting('search_enabled')=='true' && extension_loaded('xapian') ) { |
|
|
|
|
$this -> search_engine_delete(); |
|
|
|
|
$this->search_engine_delete(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -848,10 +849,10 @@ class Exercise { |
|
|
|
|
} |
|
|
|
|
$form->addElement('header', '', $form_title); |
|
|
|
|
// title |
|
|
|
|
$form -> addElement('text', 'exerciseTitle', get_lang('ExerciseName'),'class="input_titles" id="exercise_title"'); |
|
|
|
|
$form->addElement('text', 'exerciseTitle', get_lang('ExerciseName'),'class="input_titles" id="exercise_title"'); |
|
|
|
|
//$form->applyFilter('exerciseTitle','html_filter'); |
|
|
|
|
|
|
|
|
|
$form -> addElement('html','<div class="row"> |
|
|
|
|
$form->addElement('html','<div class="row"> |
|
|
|
|
<div class="label"></div> |
|
|
|
|
<div class="formw" style="height:50px"> |
|
|
|
|
<a href="javascript://" onclick=" return show_media()"> <span id="media_icon"> <img style="vertical-align: middle;" src="../img/looknfeel.png" alt="" /> '.get_lang('ExerciseDescription').'</span></a> |
|
|
|
@ -863,12 +864,12 @@ class Exercise { |
|
|
|
|
$editor_config = array_merge($editor_config, $type); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$form -> addElement ('html','<div class="HideFCKEditor" id="HiddenFCKexerciseDescription" >'); |
|
|
|
|
$form -> add_html_editor('exerciseDescription', get_lang('langExerciseDescription'), false, false, $editor_config); |
|
|
|
|
$form -> addElement ('html','</div>'); |
|
|
|
|
$form->addElement ('html','<div class="HideFCKEditor" id="HiddenFCKexerciseDescription" >'); |
|
|
|
|
$form->add_html_editor('exerciseDescription', get_lang('langExerciseDescription'), false, false, $editor_config); |
|
|
|
|
$form->addElement ('html','</div>'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$form -> addElement('html','<div class="row"> |
|
|
|
|
$form->addElement('html','<div class="row"> |
|
|
|
|
<div class="label"> </div> |
|
|
|
|
<div class="formw"> |
|
|
|
|
<a href="javascript://" onclick=" return advanced_parameters()"><span id="img_plus_and_minus"><div style="vertical-align:top;" ><img style="vertical-align:middle;" src="../img/div_show.gif" alt="" /> '.get_lang('AdvancedParameters').'</div></span></a> |
|
|
|
@ -876,7 +877,7 @@ class Exercise { |
|
|
|
|
</div>'); |
|
|
|
|
|
|
|
|
|
// Random questions |
|
|
|
|
$form -> addElement('html','<div id="options" style="display:none">'); |
|
|
|
|
$form->addElement('html','<div id="options" style="display:none">'); |
|
|
|
|
|
|
|
|
|
if($type=='full') { |
|
|
|
|
|
|
|
|
@ -896,13 +897,13 @@ class Exercise { |
|
|
|
|
$radios_feedback[] = FormValidator :: createElement ('radio', 'exerciseFeedbackType', null, get_lang('NoFeedback'),'2',array('id' =>'exerciseType_2')); |
|
|
|
|
$form->addGroup($radios_feedback, null, get_lang('FeedbackType')); |
|
|
|
|
|
|
|
|
|
//$form -> addElement('select', 'exerciseFeedbackType',get_lang('FeedbackType'),$feedback_option,'onchange="javascript:feedbackselection()"'); |
|
|
|
|
//$form->addElement('select', 'exerciseFeedbackType',get_lang('FeedbackType'),$feedback_option,'onchange="javascript:feedbackselection()"'); |
|
|
|
|
// test type |
|
|
|
|
$radios = array(); |
|
|
|
|
$radios[] = FormValidator :: createElement ('radio', 'exerciseType', null, get_lang('QuestionsPerPageOne'),'2',array('onclick' => 'check_per_page_one()', 'id'=>'option_page_one')); |
|
|
|
|
$radios[] = FormValidator :: createElement ('radio', 'exerciseType', null, get_lang('QuestionsPerPageAll'),'1',array('onclick' => 'check_per_page_all()', 'id'=>'option_page_all')); |
|
|
|
|
|
|
|
|
|
$form -> addGroup($radios, null, get_lang('QuestionsPerPage')); |
|
|
|
|
$form->addGroup($radios, null, get_lang('QuestionsPerPage')); |
|
|
|
|
} else { |
|
|
|
|
// if is Directfeedback but has not questions we can allow to modify the question type |
|
|
|
|
if ($this->selectNbrQuestions() == 0) { |
|
|
|
@ -917,16 +918,16 @@ class Exercise { |
|
|
|
|
$form->addGroup($radios_feedback, null, get_lang('FeedbackType')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//$form -> addElement('select', 'exerciseFeedbackType',get_lang('FeedbackType'),$feedback_option,'onchange="javascript:feedbackselection()"'); |
|
|
|
|
//$form->addElement('select', 'exerciseFeedbackType',get_lang('FeedbackType'),$feedback_option,'onchange="javascript:feedbackselection()"'); |
|
|
|
|
// test type |
|
|
|
|
$radios = array(); |
|
|
|
|
$radios[] = FormValidator :: createElement ('radio', 'exerciseType', null, get_lang('SimpleExercise'),'1'); |
|
|
|
|
$radios[] = FormValidator :: createElement ('radio', 'exerciseType', null, get_lang('SequentialExercise'),'2'); |
|
|
|
|
$form -> addGroup($radios, null, get_lang('ExerciseType')); |
|
|
|
|
$form->addGroup($radios, null, get_lang('ExerciseType')); |
|
|
|
|
} else { |
|
|
|
|
//we force the options to the DirectFeedback exercisetype |
|
|
|
|
$form -> addElement('hidden', 'exerciseFeedbackType',EXERCISE_FEEDBACK_TYPE_DIRECT); |
|
|
|
|
$form -> addElement('hidden', 'exerciseType',ONE_PER_PAGE); |
|
|
|
|
$form->addElement('hidden', 'exerciseFeedbackType',EXERCISE_FEEDBACK_TYPE_DIRECT); |
|
|
|
|
$form->addElement('hidden', 'exerciseType',ONE_PER_PAGE); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -934,7 +935,7 @@ class Exercise { |
|
|
|
|
$radios_results_disabled[] = FormValidator :: createElement ('radio', 'results_disabled', null, get_lang('Yes'), '0', array('id'=>'result_disabled_0')); |
|
|
|
|
$radios_results_disabled[] = FormValidator :: createElement ('radio', 'results_disabled', null, get_lang('No'), '1',array('id'=>'result_disabled_1','onclick' => 'check_results_disabled()')); |
|
|
|
|
$radios_results_disabled[] = FormValidator :: createElement ('radio', 'results_disabled', null, get_lang('OnlyShowScore'), '2',array('id'=>'result_disabled_2','onclick' => 'check_results_disabled()')); |
|
|
|
|
$form -> addGroup($radios_results_disabled, null, get_lang('ShowResultsToStudents')); |
|
|
|
|
$form->addGroup($radios_results_disabled, null, get_lang('ShowResultsToStudents')); |
|
|
|
|
|
|
|
|
|
$random = array(); |
|
|
|
|
$option=array(); |
|
|
|
@ -945,38 +946,44 @@ class Exercise { |
|
|
|
|
$random[] = FormValidator :: createElement ('select', 'randomQuestions',null,$option); |
|
|
|
|
$random[] = FormValidator :: createElement ('static', 'help','help','<span style="font-style: italic;">'.get_lang('RandomQuestionsHelp').'</span>'); |
|
|
|
|
//$random[] = FormValidator :: createElement ('text', 'randomQuestions', null,null,'0'); |
|
|
|
|
$form -> addGroup($random,null,get_lang('RandomQuestions'),'<br />'); |
|
|
|
|
$form->addGroup($random,null,get_lang('RandomQuestions'),'<br />'); |
|
|
|
|
|
|
|
|
|
//random answers |
|
|
|
|
$radios_random_answers = array(); |
|
|
|
|
$radios_random_answers[] = FormValidator :: createElement ('radio', 'randomAnswers', null, get_lang('Yes'),'1'); |
|
|
|
|
$radios_random_answers[] = FormValidator :: createElement ('radio', 'randomAnswers', null, get_lang('No'),'0'); |
|
|
|
|
$form -> addGroup($radios_random_answers, null, get_lang('RandomAnswers')); |
|
|
|
|
$form->addGroup($radios_random_answers, null, get_lang('RandomAnswers')); |
|
|
|
|
|
|
|
|
|
//Attempts |
|
|
|
|
$attempt_option=range(0,10); |
|
|
|
|
$attempt_option[0]=get_lang('Infinite'); |
|
|
|
|
|
|
|
|
|
$form -> addElement('select', 'exerciseAttempts',get_lang('ExerciseAttempts'),$attempt_option); |
|
|
|
|
|
|
|
|
|
$form -> addElement('checkbox', 'enabletimelimit',get_lang('EnableTimeLimits'),null,'onclick = " return timelimit() "'); |
|
|
|
|
$var= Exercise::selectTimeLimit(); |
|
|
|
|
$form->addElement('select', 'exerciseAttempts',get_lang('ExerciseAttempts'),$attempt_option); |
|
|
|
|
|
|
|
|
|
if(($this -> start_time!='0000-00-00 00:00:00')||($this -> end_time!='0000-00-00 00:00:00')) |
|
|
|
|
$form -> addElement('html','<div id="options2" style="display:block;">'); |
|
|
|
|
$form->addElement('checkbox', 'activate_start_date_check',get_lang('EnableStartTime'),null, array('onclick' => 'activate_start_date()')); |
|
|
|
|
|
|
|
|
|
$var = Exercise::selectTimeLimit(); |
|
|
|
|
if (($this->start_time!='0000-00-00 00:00:00')) |
|
|
|
|
$form->addElement('html','<div id="start_date_div" style="display:block;">'); |
|
|
|
|
else |
|
|
|
|
$form -> addElement('html','<div id="options2" style="display:none;">'); |
|
|
|
|
|
|
|
|
|
//$form -> addElement('date', 'start_time', get_lang('ExeStartTime'), array('language'=>'es','format' => 'dMYHi')); |
|
|
|
|
//$form -> addElement('date', 'end_time', get_lang('ExeEndTime'), array('language'=>'es','format' => 'dMYHi')); |
|
|
|
|
$form->addElement('datepicker', 'start_time', get_lang('ExeStartTime'), array('form_name'=>'exercise_admin'), 5); |
|
|
|
|
$form->addElement('datepicker', 'end_time', get_lang('ExeEndTime'), array('form_name'=>'exercise_admin'), 5); |
|
|
|
|
|
|
|
|
|
//$form -> addElement('select', 'enabletimercontroltotalminutes',get_lang('ExerciseTimerControlMinutes'),$time_minutes_option); |
|
|
|
|
$form -> addElement('html','</div>'); |
|
|
|
|
$form->addElement('html','<div id="start_date_div" style="display:none;">'); |
|
|
|
|
|
|
|
|
|
$form->addElement('datepicker', 'start_time', '', array('form_name'=>'exercise_admin'), 5); |
|
|
|
|
|
|
|
|
|
$form->addElement('html','</div>'); |
|
|
|
|
|
|
|
|
|
$form->addElement('checkbox', 'activate_end_date_check', get_lang('EnableEndTime'), null,array('onclick' => 'activate_end_date()')); |
|
|
|
|
if (($this->end_time!='0000-00-00 00:00:00')) |
|
|
|
|
$form->addElement('html','<div id="end_date_div" style="display:block;">'); |
|
|
|
|
else |
|
|
|
|
$form->addElement('html','<div id="end_date_div" style="display:none;">'); |
|
|
|
|
|
|
|
|
|
$form->addElement('datepicker', 'end_time', '', array('form_name'=>'exercise_admin'), 5); |
|
|
|
|
|
|
|
|
|
//$form->addElement('select', 'enabletimercontroltotalminutes',get_lang('ExerciseTimerControlMinutes'),$time_minutes_option); |
|
|
|
|
$form->addElement('html','</div>'); |
|
|
|
|
|
|
|
|
|
$check_option=$this -> selectType(); |
|
|
|
|
$check_option=$this->selectType(); |
|
|
|
|
|
|
|
|
|
if ($check_option==1 && isset($_GET['exerciseId'])) { |
|
|
|
|
$diplay = 'none'; |
|
|
|
@ -984,101 +991,103 @@ class Exercise { |
|
|
|
|
$diplay = 'block'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$form -> addElement('checkbox', 'propagate_neg',get_lang('PropagateNegativeResults'),null); |
|
|
|
|
$form->addElement('checkbox', 'propagate_neg',get_lang('PropagateNegativeResults'),null); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$form -> addElement('html','<div id="divtimecontrol" style="display:'.$diplay.';">'); |
|
|
|
|
$form->addElement('html','<div id="divtimecontrol" style="display:'.$diplay.';">'); |
|
|
|
|
|
|
|
|
|
//Timer control |
|
|
|
|
$time_hours_option = range(0,12); |
|
|
|
|
$time_minutes_option = range(0,59); |
|
|
|
|
$form -> addElement('checkbox', 'enabletimercontrol',get_lang('EnableTimerControl'),null,array('onclick' =>'option_time_expired()','id'=>'enabletimercontrol','onload'=>'check_load_time()')); |
|
|
|
|
$form->addElement('checkbox', 'enabletimercontrol',get_lang('EnableTimerControl'),null,array('onclick' =>'option_time_expired()','id'=>'enabletimercontrol','onload'=>'check_load_time()')); |
|
|
|
|
$expired_date = (int)$this->selectExpiredTime(); |
|
|
|
|
|
|
|
|
|
if(($expired_date!='0')) { |
|
|
|
|
$form -> addElement('html','<div id="timercontrol" style="display:block;">'); |
|
|
|
|
$form->addElement('html','<div id="timercontrol" style="display:block;">'); |
|
|
|
|
} else { |
|
|
|
|
$form -> addElement('html','<div id="timercontrol" style="display:none;">'); |
|
|
|
|
$form->addElement('html','<div id="timercontrol" style="display:none;">'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$form -> addElement('text', 'enabletimercontroltotalminutes',get_lang('ExerciseTotalDurationInMinutes'),array('style' => 'width : 35px','id' => 'enabletimercontroltotalminutes')); |
|
|
|
|
$form -> addElement('html','</div>'); |
|
|
|
|
//$form -> addElement('text', 'exerciseAttempts', get_lang('ExerciseAttempts').' : ',array('size'=>'2')); |
|
|
|
|
|
|
|
|
|
$form -> addElement('html','</div>'); //End advanced setting |
|
|
|
|
$form -> addElement('html','</div>'); |
|
|
|
|
|
|
|
|
|
$defaults = array(); |
|
|
|
|
|
|
|
|
|
if (api_get_setting('search_enabled') === 'true') { |
|
|
|
|
require_once(api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php'); |
|
|
|
|
|
|
|
|
|
$form -> addElement ('checkbox', 'index_document','', get_lang('SearchFeatureDoIndexDocument')); |
|
|
|
|
$form -> addElement ('html','<br /><div class="row">'); |
|
|
|
|
$form -> addElement ('html', '<div class="label">'. get_lang('SearchFeatureDocumentLanguage') .'</div>'); |
|
|
|
|
$form -> addElement ('html', '<div class="formw">'. api_get_languages_combo() .'</div>'); |
|
|
|
|
$form -> addElement ('html','</div><div class="sub-form">'); |
|
|
|
|
|
|
|
|
|
$specific_fields = get_specific_field_list(); |
|
|
|
|
foreach ($specific_fields as $specific_field) { |
|
|
|
|
$form -> addElement ('text', $specific_field['code'], $specific_field['name']); |
|
|
|
|
$filter = array('course_code'=> "'". api_get_course_id() ."'", 'field_id' => $specific_field['id'], 'ref_id' => $this->id, 'tool_id' => '\''. TOOL_QUIZ .'\''); |
|
|
|
|
$values = get_specific_field_values_list($filter, array('value')); |
|
|
|
|
if ( !empty($values) ) { |
|
|
|
|
$arr_str_values = array(); |
|
|
|
|
foreach ($values as $value) { |
|
|
|
|
$arr_str_values[] = $value['value']; |
|
|
|
|
} |
|
|
|
|
$defaults[$specific_field['code']] = implode(', ', $arr_str_values); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$form -> addElement ('html','</div>'); |
|
|
|
|
} |
|
|
|
|
$form->addElement('text', 'enabletimercontroltotalminutes',get_lang('ExerciseTotalDurationInMinutes'),array('style' => 'width : 35px','id' => 'enabletimercontroltotalminutes')); |
|
|
|
|
$form->addElement('html','</div>'); |
|
|
|
|
//$form->addElement('text', 'exerciseAttempts', get_lang('ExerciseAttempts').' : ',array('size'=>'2')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$defaults = array(); |
|
|
|
|
|
|
|
|
|
if (api_get_setting('search_enabled') === 'true') { |
|
|
|
|
require_once(api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php'); |
|
|
|
|
|
|
|
|
|
$form->addElement ('checkbox', 'index_document','', get_lang('SearchFeatureDoIndexDocument')); |
|
|
|
|
$form->addElement ('html','<br /><div class="row">'); |
|
|
|
|
$form->addElement ('html', '<div class="label">'. get_lang('SearchFeatureDocumentLanguage') .'</div>'); |
|
|
|
|
$form->addElement ('html', '<div class="formw">'. api_get_languages_combo() .'</div>'); |
|
|
|
|
$form->addElement ('html','</div><div class="sub-form">'); |
|
|
|
|
|
|
|
|
|
$specific_fields = get_specific_field_list(); |
|
|
|
|
foreach ($specific_fields as $specific_field) { |
|
|
|
|
$form->addElement ('text', $specific_field['code'], $specific_field['name']); |
|
|
|
|
$filter = array('course_code'=> "'". api_get_course_id() ."'", 'field_id' => $specific_field['id'], 'ref_id' => $this->id, 'tool_id' => '\''. TOOL_QUIZ .'\''); |
|
|
|
|
$values = get_specific_field_values_list($filter, array('value')); |
|
|
|
|
if ( !empty($values) ) { |
|
|
|
|
$arr_str_values = array(); |
|
|
|
|
foreach ($values as $value) { |
|
|
|
|
$arr_str_values[] = $value['value']; |
|
|
|
|
} |
|
|
|
|
$defaults[$specific_field['code']] = implode(', ', $arr_str_values); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$form->addElement ('html','</div>'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$form->addElement('html','</div>'); //End advanced setting |
|
|
|
|
$form->addElement('html','</div>'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// submit |
|
|
|
|
isset($_GET['exerciseId'])?$text=get_lang('ModifyExercise'):$text=get_lang('ProcedToQuestions'); |
|
|
|
|
$form -> addElement('html', '<br /><br />'); |
|
|
|
|
$form -> addElement('style_submit_button', 'submitExercise', $text, 'class="save"'); |
|
|
|
|
$form->addElement('html', '<br /><br />'); |
|
|
|
|
$form->addElement('style_submit_button', 'submitExercise', $text, 'class="save"'); |
|
|
|
|
|
|
|
|
|
$form -> addRule ('exerciseTitle', get_lang('GiveExerciseName'), 'required'); |
|
|
|
|
$form->addRule('exerciseTitle', get_lang('GiveExerciseName'), 'required'); |
|
|
|
|
if($type=='full') { |
|
|
|
|
// rules |
|
|
|
|
$form -> addRule ('exerciseAttempts', get_lang('Numeric'), 'numeric'); |
|
|
|
|
$form -> addRule ('start_time', get_lang('InvalidDate'), 'date'); |
|
|
|
|
$form -> addRule ('end_time', get_lang('InvalidDate'), 'date'); |
|
|
|
|
$form -> addRule(array ('start_time', 'end_time'), get_lang('StartDateShouldBeBeforeEndDate'), 'date_compare', 'lte'); |
|
|
|
|
$form->addRule('exerciseAttempts', get_lang('Numeric'), 'numeric'); |
|
|
|
|
$form->addRule('start_time', get_lang('InvalidDate'), 'date'); |
|
|
|
|
$form->addRule('end_time', get_lang('InvalidDate'), 'date'); |
|
|
|
|
//$form->addRule(array ('start_time', 'end_time'), get_lang('StartDateShouldBeBeforeEndDate'), 'date_compare', 'lte'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// defaults |
|
|
|
|
if($type=='full') { |
|
|
|
|
if($this -> id > 0) { |
|
|
|
|
if ($this -> random > $this->selectNbrQuestions()) { |
|
|
|
|
if ($type=='full') { |
|
|
|
|
if($this->id > 0) { |
|
|
|
|
if ($this->random > $this->selectNbrQuestions()) { |
|
|
|
|
$defaults['randomQuestions'] = $this->selectNbrQuestions(); |
|
|
|
|
} else { |
|
|
|
|
$defaults['randomQuestions'] = $this -> random; |
|
|
|
|
$defaults['randomQuestions'] = $this->random; |
|
|
|
|
} |
|
|
|
|
$defaults['randomAnswers'] = $this ->selectRandomAnswers(); |
|
|
|
|
$defaults['exerciseType'] = $this -> selectType(); |
|
|
|
|
$defaults['exerciseTitle'] = $this -> selectTitle(); |
|
|
|
|
$defaults['exerciseDescription'] = $this -> selectDescription(); |
|
|
|
|
$defaults['exerciseType'] = $this->selectType(); |
|
|
|
|
$defaults['exerciseTitle'] = $this->selectTitle(); |
|
|
|
|
$defaults['exerciseDescription'] = $this->selectDescription(); |
|
|
|
|
$defaults['exerciseAttempts'] = $this->selectAttempts(); |
|
|
|
|
$defaults['exerciseFeedbackType'] = $this->selectFeedbackType(); |
|
|
|
|
$defaults['results_disabled'] = $this->selectResultsDisabled(); |
|
|
|
|
$defaults['propagate_neg'] = $this->selectPropagateNeg(); |
|
|
|
|
|
|
|
|
|
if(($this -> start_time!='0000-00-00 00:00:00')||($this -> end_time!='0000-00-00 00:00:00')) |
|
|
|
|
$defaults['enabletimelimit'] = 1; |
|
|
|
|
if (($this->start_time!='0000-00-00 00:00:00')) |
|
|
|
|
$defaults['activate_start_date_check'] = 1; |
|
|
|
|
if ($this->end_time!='0000-00-00 00:00:00') |
|
|
|
|
$defaults['activate_end_date_check'] = 1; |
|
|
|
|
|
|
|
|
|
$defaults['start_time'] = ($this->start_time!='0000-00-00 00:00:00')? $this -> start_time : date('Y-m-d 12:00:00'); |
|
|
|
|
$defaults['end_time'] = ($this->end_time!='0000-00-00 00:00:00')?$this -> end_time : date('Y-m-d 12:00:00',time()+84600); |
|
|
|
|
$defaults['start_time'] = ($this->start_time!='0000-00-00 00:00:00')? $this->start_time : date('Y-m-d 12:00:00'); |
|
|
|
|
$defaults['end_time'] = ($this->end_time!='0000-00-00 00:00:00')?$this->end_time : date('Y-m-d 12:00:00',time()+84600); |
|
|
|
|
|
|
|
|
|
//Get expired time |
|
|
|
|
if($this -> expired_time != '0') { |
|
|
|
|
$defaults['enabletimercontrol'] = 1; |
|
|
|
|
$defaults['enabletimercontroltotalminutes'] = $this -> expired_time; |
|
|
|
|
if($this->expired_time != '0') { |
|
|
|
|
$defaults['enabletimercontrol'] = 1; |
|
|
|
|
$defaults['enabletimercontroltotalminutes'] = $this->expired_time; |
|
|
|
|
} else { |
|
|
|
|
$defaults['enabletimercontroltotalminutes'] = 0; |
|
|
|
|
$defaults['enabletimercontroltotalminutes'] = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
@ -1091,18 +1100,18 @@ class Exercise { |
|
|
|
|
$defaults['results_disabled'] = 0; |
|
|
|
|
|
|
|
|
|
$defaults['start_time'] = date('Y-m-d 12:00:00'); |
|
|
|
|
$defaults['end_time'] = date('Y-m-d 12:00:00',time()+84600); |
|
|
|
|
$defaults['end_time'] = date('Y-m-d 12:00:00',time()+84600); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
$defaults['exerciseTitle'] = $this -> selectTitle(); |
|
|
|
|
$defaults['exerciseDescription'] = $this -> selectDescription(); |
|
|
|
|
$defaults['exerciseTitle'] = $this->selectTitle(); |
|
|
|
|
$defaults['exerciseDescription'] = $this->selectDescription(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (api_get_setting('search_enabled') === 'true') { |
|
|
|
|
$defaults['index_document'] = 'checked="checked"'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$form -> setDefaults($defaults); |
|
|
|
|
$form->setDefaults($defaults); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -1111,29 +1120,33 @@ class Exercise { |
|
|
|
|
*/ |
|
|
|
|
function processCreation($form, $type='') { |
|
|
|
|
|
|
|
|
|
$this -> updateTitle($form -> getSubmitValue('exerciseTitle')); |
|
|
|
|
$this -> updateDescription($form -> getSubmitValue('exerciseDescription')); |
|
|
|
|
$this -> updateAttempts($form -> getSubmitValue('exerciseAttempts')); |
|
|
|
|
$this -> updateFeedbackType($form -> getSubmitValue('exerciseFeedbackType')); |
|
|
|
|
$this -> updateType($form -> getSubmitValue('exerciseType')); |
|
|
|
|
$this -> setRandom($form -> getSubmitValue('randomQuestions')); |
|
|
|
|
$this -> updateRandomAnswers($form -> getSubmitValue('randomAnswers')); |
|
|
|
|
$this -> updateResultsDisabled($form -> getSubmitValue('results_disabled')); |
|
|
|
|
$this -> updateExpiredTime($form -> getSubmitValue('enabletimercontroltotalminutes')); |
|
|
|
|
$this -> updatePropagateNegative($form -> getSubmitValue('propagate_neg')); |
|
|
|
|
|
|
|
|
|
if ($form -> getSubmitValue('enabletimelimit')==1) { |
|
|
|
|
$start_time = $form -> getSubmitValue('start_time'); |
|
|
|
|
$this->start_time = $start_time['Y'].'-'.$start_time['F'].'-'.$start_time['d'].' '.$start_time['H'].':'.$start_time['i'].':00'; |
|
|
|
|
$end_time = $form -> getSubmitValue('end_time'); |
|
|
|
|
$this->end_time = $end_time['Y'].'-'.$end_time['F'].'-'.$end_time['d'].' '.$end_time['H'].':'.$end_time['i'].':00'; |
|
|
|
|
$this->updateTitle($form->getSubmitValue('exerciseTitle')); |
|
|
|
|
$this->updateDescription($form->getSubmitValue('exerciseDescription')); |
|
|
|
|
$this->updateAttempts($form->getSubmitValue('exerciseAttempts')); |
|
|
|
|
$this->updateFeedbackType($form->getSubmitValue('exerciseFeedbackType')); |
|
|
|
|
$this->updateType($form->getSubmitValue('exerciseType')); |
|
|
|
|
$this->setRandom($form->getSubmitValue('randomQuestions')); |
|
|
|
|
$this->updateRandomAnswers($form->getSubmitValue('randomAnswers')); |
|
|
|
|
$this->updateResultsDisabled($form->getSubmitValue('results_disabled')); |
|
|
|
|
$this->updateExpiredTime($form->getSubmitValue('enabletimercontroltotalminutes')); |
|
|
|
|
$this->updatePropagateNegative($form->getSubmitValue('propagate_neg')); |
|
|
|
|
|
|
|
|
|
if ($form->getSubmitValue('activate_start_date_check') == 1) { |
|
|
|
|
$start_time = $form->getSubmitValue('start_time'); |
|
|
|
|
$this->start_time = $start_time['Y'].'-'.$start_time['F'].'-'.$start_time['d'].' '.$start_time['H'].':'.$start_time['i'].':00'; |
|
|
|
|
} else { |
|
|
|
|
$this->start_time = '0000-00-00 00:00:00'; |
|
|
|
|
$this->end_time = '0000-00-00 00:00:00'; |
|
|
|
|
$this->start_time = '0000-00-00 00:00:00'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($form->getSubmitValue('activate_end_date_check') == 1) { |
|
|
|
|
$end_time = $form->getSubmitValue('end_time'); |
|
|
|
|
$this->end_time = $end_time['Y'].'-'.$end_time['F'].'-'.$end_time['d'].' '.$end_time['H'].':'.$end_time['i'].':00'; |
|
|
|
|
} else { |
|
|
|
|
$this->end_time = '0000-00-00 00:00:00'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($form -> getSubmitValue('enabletimercontrol') == 1) { |
|
|
|
|
$expired_total_time = $form -> getSubmitValue('enabletimercontroltotalminutes'); |
|
|
|
|
if ($form->getSubmitValue('enabletimercontrol') == 1) { |
|
|
|
|
$expired_total_time = $form->getSubmitValue('enabletimercontroltotalminutes'); |
|
|
|
|
if ($this->expired_time == 0) { |
|
|
|
|
$this->expired_time = $expired_total_time; |
|
|
|
|
} |
|
|
|
@ -1141,23 +1154,20 @@ class Exercise { |
|
|
|
|
$this->expired_time = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($form -> getSubmitValue('randomAnswers') == 1) { |
|
|
|
|
if ($form->getSubmitValue('randomAnswers') == 1) { |
|
|
|
|
$this->random_answers=1; |
|
|
|
|
} else { |
|
|
|
|
$this->random_answers=0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$this -> save($type); |
|
|
|
|
$this->save($type); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function search_engine_save() { |
|
|
|
|
|
|
|
|
|
function search_engine_save() { |
|
|
|
|
if ($_POST['index_document'] != 1) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$course_id = api_get_course_id(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
require_once api_get_path(LIBRARY_PATH) . 'search/DokeosIndexer.class.php'; |
|
|
|
|
require_once api_get_path(LIBRARY_PATH) . 'search/IndexableChunk.class.php'; |
|
|
|
|
require_once api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php'; |
|
|
|
|