⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edit_multichoice_form.php

📁 很棒的在线教学系统
💻 PHP
字号:
<?php  // $Id: edit_multichoice_form.php,v 1.12.2.4 2009/02/19 01:09:34 tjhunt Exp $/** * Defines the editing form for the multichoice question type. * * @copyright &copy; 2007 Jamie Pratt * @author Jamie Pratt me@jamiep.org * @license http://www.gnu.org/copyleft/gpl.html GNU Public License * @package questionbank * @subpackage questiontypes *//** * multiple choice editing form definition. */class question_edit_multichoice_form extends question_edit_form {    /**     * Add question-type specific form fields.     *     * @param object $mform the form being built.     */    function definition_inner(&$mform) {        global $QTYPES;        $menu = array(get_string('answersingleno', 'qtype_multichoice'), get_string('answersingleyes', 'qtype_multichoice'));        $mform->addElement('select', 'single', get_string('answerhowmany', 'qtype_multichoice'), $menu);        $mform->setDefault('single', 1);        $mform->addElement('advcheckbox', 'shuffleanswers', get_string('shuffleanswers', 'qtype_multichoice'), null, null, array(0,1));        $mform->setHelpButton('shuffleanswers', array('multichoiceshuffle', get_string('shuffleanswers','qtype_multichoice'), 'quiz'));        $mform->setDefault('shuffleanswers', 1);        $numberingoptions = $QTYPES[$this->qtype()]->get_numbering_styles();        $menu = array();        foreach ($numberingoptions as $numberingoption) {            $menu[$numberingoption] = get_string('answernumbering' . $numberingoption, 'qtype_multichoice');        }        $mform->addElement('select', 'answernumbering', get_string('answernumbering', 'qtype_multichoice'), $menu);        $mform->setDefault('answernumbering', 'abc');/*        $mform->addElement('static', 'answersinstruct', get_string('choices', 'qtype_multichoice'), get_string('fillouttwochoices', 'qtype_multichoice'));        $mform->closeHeaderBefore('answersinstruct');*/        $creategrades = get_grade_options();        $this->add_per_answer_fields($mform, get_string('choiceno', 'qtype_multichoice', '{no}'),                $creategrades->gradeoptionsfull, max(5, QUESTION_NUMANS_START));        $mform->addElement('header', 'overallfeedbackhdr', get_string('overallfeedback', 'qtype_multichoice'));        foreach (array('correctfeedback', 'partiallycorrectfeedback', 'incorrectfeedback') as $feedbackname) {            $mform->addElement('htmleditor', $feedbackname, get_string($feedbackname, 'qtype_multichoice'),                                array('course' => $this->coursefilesid));            $mform->setType($feedbackname, PARAM_RAW);        }    }    function set_data($question) {        if (isset($question->options)){            $answers = $question->options->answers;            if (count($answers)) {                $key = 0;                foreach ($answers as $answer){                    $default_values['answer['.$key.']'] = $answer->answer;                    $default_values['fraction['.$key.']'] = $answer->fraction;                    $default_values['feedback['.$key.']'] = $answer->feedback;                    $key++;                }            }            $default_values['single'] =  $question->options->single;            $default_values['answernumbering'] =  $question->options->answernumbering;            $default_values['shuffleanswers'] =  $question->options->shuffleanswers;            $default_values['correctfeedback'] =  $question->options->correctfeedback;            $default_values['partiallycorrectfeedback'] =  $question->options->partiallycorrectfeedback;            $default_values['incorrectfeedback'] =  $question->options->incorrectfeedback;            $question = (object)((array)$question + $default_values);        }        parent::set_data($question);    }    function qtype() {        return 'multichoice';    }    function validation($data, $files) {        $errors = parent::validation($data, $files);        $answers = $data['answer'];        $answercount = 0;        $totalfraction = 0;        $maxfraction = -1;        foreach ($answers as $key => $answer){            //check no of choices            $trimmedanswer = trim($answer);            if (!empty($trimmedanswer)){                $answercount++;            }            //check grades            if ($answer != '') {                if ($data['fraction'][$key] > 0) {                    $totalfraction += $data['fraction'][$key];                }                if ($data['fraction'][$key] > $maxfraction) {                    $maxfraction = $data['fraction'][$key];                }            }        }        if ($answercount==0){            $errors['answer[0]'] = get_string('notenoughanswers', 'qtype_multichoice', 2);            $errors['answer[1]'] = get_string('notenoughanswers', 'qtype_multichoice', 2);        } elseif ($answercount==1){            $errors['answer[1]'] = get_string('notenoughanswers', 'qtype_multichoice', 2);        }        /// Perform sanity checks on fractional grades        if ($data['single']) {            if ($maxfraction != 1) {                $maxfraction = $maxfraction * 100;                $errors['fraction[0]'] = get_string('errfractionsnomax', 'qtype_multichoice', $maxfraction);            }        } else {            $totalfraction = round($totalfraction,2);            if ($totalfraction != 1) {                $totalfraction = $totalfraction * 100;                $errors['fraction[0]'] = get_string('errfractionsaddwrong', 'qtype_multichoice', $totalfraction);            }        }        return $errors;    }}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -