diff --git a/question/type/multianswer/edit_multianswer_form.php b/question/type/multianswer/edit_multianswer_form.php index 47766e8fa16..14a23b0e874 100644 --- a/question/type/multianswer/edit_multianswer_form.php +++ b/question/type/multianswer/edit_multianswer_form.php @@ -21,7 +21,7 @@ class question_edit_multianswer_form extends question_edit_form { var $savedquestiondisplay ; var $used_in_quiz = false ; var $qtype_change = false ; - var $negative_diff = false ; + var $negative_diff = 0 ; var $nb_of_quiz = 0; var $nb_of_attempts = 0; public $confirm = 0 ; @@ -29,16 +29,16 @@ class question_edit_multianswer_form extends question_edit_form { function question_edit_multianswer_form(&$submiturl, &$question, &$category, &$contexts, $formeditable = true){ global $QTYPES, $SESSION, $CFG, $DB; - /* $this->regenerate = true; + $this->regenerate = true; if ( "1" == optional_param('reload','', PARAM_INT )) { $this->reload = true ; }else { $this->reload = false ; } // $this->question = $question; - //$used_in_quiz =false; - echo "
question
";print_r($question);echo ""; - if(! empty($question->id)){ + $this->used_in_quiz =false; + // echo "
question
";print_r($question);echo ""; + if(isset($question->id) && $question->id != 0 ){ $this->savedquestiondisplay =fullclone($question ) ; if ($list = $DB->get_records('quiz_question_instances', array( 'question'=> $question->id))){ foreach($list as $key => $li){ @@ -52,7 +52,7 @@ class question_edit_multianswer_form extends question_edit_form { } -*/ + parent::question_edit_form($submiturl, $question, $category, $contexts, $formeditable); @@ -61,14 +61,13 @@ class question_edit_multianswer_form extends question_edit_form { function definition_inner(&$mform) { - // $mform->addElement('hidden', 'reload', 1); - // $mform->setType('reload', PARAM_INT); + $mform->addElement('hidden', 'reload', 1); + $mform->setType('reload', PARAM_INT); $question_type_names = question_type_menu(); - $mform->addRule('questiontext', null, 'required', null, 'client'); // Remove meaningless defaultgrade field. $mform->removeElement('defaultgrade'); - /* $this->confirm = optional_param('confirm','0', PARAM_RAW); + $this->confirm = optional_param('confirm','0', PARAM_RAW); // display the questions from questiontext; if ( "" != optional_param('questiontext','', PARAM_RAW)) { @@ -187,9 +186,6 @@ class question_edit_multianswer_form extends question_edit_form { } if($this->type_change ) { - //$this->used_in_quiz - - // $mform->addElement('header', 'additemhdr', "WARNING"); $mform->addElement('static', 'alert1', ""."Question type change "."","".get_string(' at least one question type has been changed. Did you add,delete or move a question ? Look ahead ','qtype_multianswer')."");//$countsubquestions."-".$countsavedsubquestions } echo ''; @@ -209,7 +205,7 @@ class question_edit_multianswer_form extends question_edit_form { }else { $mform->addElement('hidden', 'confirm',0); } -*/ + } @@ -264,7 +260,7 @@ class question_edit_multianswer_form extends question_edit_form { } } } -/* + // set default to $questiondisplay questions elements if (isset($this->questiondisplay->options->questions)) { $subquestions = fullclone($this->questiondisplay->options->questions) ; @@ -347,9 +343,6 @@ class question_edit_multianswer_form extends question_edit_form { } } } - if (( $this->negative_diff || $this->used_in_quiz && ($this->negative_diff > 0 ||$this->negative_diff < 0 || $this->type_change ))&& $this->confirm == 0 ){ - $this->_form->setElementError('confirm',"confirm then save"); - } $default_values['alertas']= "".get_string("
errors
";print_r($errors);echo ""; + + $questiondisplay = qtype_multianswer_extract_question($data['questiontext']) ; - if (isset($this->questiondisplay->options->questions)) { - $subquestions = fullclone($this->questiondisplay->options->questions) ; + + if (isset($questiondisplay->options->questions)) { + + $subquestions = fullclone($questiondisplay->options->questions) ; if (count($subquestions)) { $sub =1; foreach ($subquestions as $subquestion) { @@ -379,10 +375,9 @@ class question_edit_multianswer_form extends question_edit_form { $maxgrade = false; $maxfraction = -1; if(isset($this->savedquestiondisplay->options->questions[$sub]->qtype) && - $this->savedquestiondisplay->options->questions[$sub]->qtype != $this->questiondisplay->options->questions[$sub]->qtype ){ + $this->savedquestiondisplay->options->questions[$sub]->qtype != $questiondisplay->options->questions[$sub]->qtype ){ $storemess = " STORED QTYPE ".$question_type_names[$this->savedquestiondisplay->options->questions[$sub]->qtype]; } - // $errors['subhdr'.$sub]=$storemess ; foreach ( $subquestion->answer as $key=>$answer) { $trimmedanswer = trim($answer); if ($trimmedanswer !== '') { @@ -414,9 +409,13 @@ class question_edit_multianswer_form extends question_edit_form { $errors['questiontext']=get_string('questionsmissing', 'qtype_multianswer'); } } + // $question = qtype_multianswer_extract_question($data['questiontext']); + // if (isset $question->options->questions + if (( $this->negative_diff > 0 || $this->used_in_quiz && ($this->negative_diff > 0 ||$this->negative_diff < 0 || $this->type_change ))&& $this->confirm == 0 ){ + $errors['confirm']="confirm then save".$this->negative_diff ; + } - echo "
errors
";print_r($errors);echo ""; -*/ + return $errors; }