datasetdefinitions_form.php
来自「很棒的在线教学系统」· PHP 代码 · 共 133 行
PHP
133 行
<?php // $Id: datasetdefinitions_form.php,v 1.7.2.3 2009/02/19 01:09:34 tjhunt Exp $/** * @package questionbank * @subpackage questiontypes */class question_dataset_dependent_definitions_form extends moodleform { /** * Question object with options and answers already loaded by get_question_options * Be careful how you use this it is needed sometimes to set up the structure of the * form in definition_inner but data is always loaded into the form with set_defaults. * * @var object */ var $question; /** * Reference to question type object * * @var question_dataset_dependent_questiontype */ var $qtypeobj; /** * Add question-type specific form fields. * * @param MoodleQuickForm $mform the form being built. */ function question_dataset_dependent_definitions_form($submiturl, $question){ global $QTYPES; $this->question = $question; $this->qtypeobj =& $QTYPES[$this->question->qtype]; parent::moodleform($submiturl); } function definition() { global $SESSION; $mform =& $this->_form; $stringfile = 'qtype_'.$this->question->qtype ; $possibledatasets = $this->qtypeobj->find_dataset_names($this->question->questiontext); $mandatorydatasets = array(); if (isset($this->question->options->answers)){ foreach ($this->question->options->answers as $answer) { $mandatorydatasets += $this->qtypeobj->find_dataset_names($answer->answer); } }else{ foreach ($SESSION->datasetdependent->questionform->answers as $answer){ $mandatorydatasets += $this->qtypeobj->find_dataset_names($answer); } } $key = 0; $datadefscat= array(); $datadefscat = $this->qtypeobj->get_dataset_definitions_category($this->question); $datasetmenus = array(); $label = "<div class='mdl-align'>".get_string('datasetrole', 'qtype_datasetdependent','numerical')."</div>"; $mform->addElement('html', $label);// explaining the role of datasets so other strings can be shortened $mform->addElement('header', 'mandatoryhdr', get_string('mandatoryhdr', $stringfile)); $labelsharedwildcard = get_string("sharedwildcard", "qtype_datasetdependent"); foreach ($mandatorydatasets as $datasetname) { if (!isset($datasetmenus[$datasetname])) { list($options, $selected) = $this->qtypeobj->dataset_options($this->question, $datasetname); unset($options['0']); // Mandatory... $label = get_string("wildcard", "quiz"). " <strong>$datasetname</strong> "; $mform->addElement('select', "dataset[$key]", $label, $options); if (isset($datadefscat[$datasetname])){ $mform->addElement('static', "there is a category", $labelsharedwildcard." <strong>$datasetname </strong>", get_string('dataitemdefined',"qtype_datasetdependent", $datadefscat[$datasetname])); } $mform->setDefault("dataset[$key]", $selected); $datasetmenus[$datasetname]=''; $key++; } } $mform->addElement('header', 'possiblehdr', get_string('possiblehdr', $stringfile)); foreach ($possibledatasets as $datasetname) { if (!isset($datasetmenus[$datasetname])) { list($options, $selected) = $this->qtypeobj->dataset_options($this->question, $datasetname,false); $label = get_string("wildcard", "quiz"). " <strong>$datasetname</strong> "; $mform->addElement('select', "dataset[$key]", $label, $options); // $mform->addRule("dataset[$key]", null, 'required', null, 'client'); if (isset($datadefscat[$datasetname])){ $mform->addElement('static', "there is a category", $labelsharedwildcard." <strong>$datasetname </strong>", get_string('dataitemdefined',"qtype_datasetdependent", $datadefscat[$datasetname])); } // $selected ="0"; $mform->setDefault("dataset[$key]", $selected); $datasetmenus[$datasetname]=''; $key++; } } $this->add_action_buttons(false, get_string('nextpage', 'qtype_calculated')); //hidden elements $mform->addElement('hidden', 'returnurl'); $mform->setType('returnurl', PARAM_URL); $mform->addElement('hidden', 'id'); $mform->setType('id', PARAM_INT); $mform->addElement('hidden', 'courseid'); $mform->setType('courseid', PARAM_INT); $mform->setDefault('courseid', 0); $mform->addElement('hidden', 'cmid'); $mform->setType('cmid', PARAM_INT); $mform->setDefault('cmid', 0); $mform->setType('id', PARAM_INT); $mform->addElement('hidden', 'wizard', 'datasetitems'); $mform->setType('wizard', PARAM_ALPHA); } function validation($data, $files) { $errors = parent::validation($data, $files); $datasets = $data['dataset']; $countvalid = 0 ; foreach ($datasets as $key => $dataset){ if ($dataset !="0") { $countvalid++; } } if (!$countvalid){ foreach ($datasets as $key => $dataset){ $errors['dataset['.$key.']'] = get_string('atleastonerealdataset', 'qtype_datasetdependent'); } } return $errors; }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?