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

📄 report.php

📁 很棒的在线教学系统
💻 PHP
📖 第 1 页 / 共 2 页
字号:
						}					}				} // end foreach $field				// initialize counters for this question, if necessary				if (!isset($q[$id]['count'])) {					$q[$id]['count'] = array('hi'=>0, 'lo'=>0, 'correct'=>0, 'total'=>0, 'sum'=>0);				}				// increment counters				$q[$id]['count']['sum'] += $response->score;				$q[$id]['count']['total']++;				if ($response->score==100) {					$q[$id]['count']['correct']++;					if ($is_hi_score) {						$q[$id]['count']['hi']++;					} else if ($is_lo_score) {						$q[$id]['count']['lo']++;					}				}			} // end foreach attempt		} // end foreach question		// check we have some details		if (count($q)) {			$showhideid = 'showhide';			// shortcuts for html tags			$bold_start = $is_html ? '<strong>' :  "";			$bold_end = $is_html ? '</strong>' : "";			$div_start = $is_html ? '<div id="'.$showhideid.'">' : "";			$div_end = $is_html ? '</div>' : "";			$font_red   = $is_html ? '<font color="red" size="-2">' : '';			$font_blue  = $is_html ? '<font color="blue" size="-2">' : '';			$font_green = $is_html ? '<font color="green" size="-2">' : '';			$font_brown = $is_html ? '<font color="brown" size="-2">' : '';			$font_end = $is_html ? '</font>'."\n" : '';			$br = $is_html ? '<br />' : "\n";			$space = $is_html ? '&nbsp;' : "";			$no_value = $is_html ? '--' : "";			$help_button = $is_html ? helpbutton("discrimination", get_string('discrimination', 'quiz'), "quiz", true, false, "", true) : "";			// table properties			unset($table);			$table->border = 1;			$table->width = '100%';			$table->caption = get_string('itemanal', 'quiz');			if ($is_html) {				$table->caption .= helpbutton('analysistable', $table->caption, 'hotpot', true, false, '', true);			}			// initialize legend, if necessary			if (!empty($options['reportshowlegend'])) {				if (empty($tables) || empty($tables[0]->legend)) {					$table->legend = array();				} else {					$table->legend = $tables[0]->legend;					unset($tables[0]->legend);				}			}			// headings for name, attempt number and score/grade			$table->head = array($space);			$table->align = array('right');			$table->size = array(80);			// question headings			$this->add_question_headings($questions, $table, 'left', 0);			// initialize statistics			$table->stat = array();			$table->statheadercols = array(0);			// add headings for the $foot of the $table			$table->foot = array();			$table->foot[0] = array(get_string('average', 'hotpot'));			$table->foot[1] = array(get_string('percentcorrect', 'quiz'));			$table->foot[2] = array(get_string('discrimination', 'quiz').$help_button);			// maximum discrimination index (also default the default value)			$max_d_index = 10;			////////////////////////////////////////////			// format the statistics into the $table			////////////////////////////////////////////			// add $stat(istics) and $foot of $table			$questionids = array_keys($q);			foreach ($questionids as $col => $id) {				$row = 0;				// print the question text if there is no legend				if (empty($table->legend)) {					// add button to show/hide question text					if (!isset($table->stat[0])) {						$button = $is_html ? hotpot_showhide_button($showhideid) : "";						$table->stat[0] = array(get_string('question', 'quiz').$button);					}					// add the question name/text					$name = hotpot_get_question_name($questions[$id]);					$table->stat[$row++][$col+1] = $div_start.$bold_start.$name.$bold_end.$div_end.$space;				}				// add details about each field				foreach ($fields as $field) {					// check this row is required					if ($f[$field]['count']) {						$values = array();						$string_type = array_search($field, $string_fields);						// get the value of each response to this field						// and the count of that value						foreach ($q[$id][$field] as $value => $count) {							if (is_numeric($value) && $count) {								if (is_numeric($string_type)) {									$value = hotpot_string($value);									$this->set_legend($table, $col, $value, $questions[$id]);									switch ($string_type) {										case 0: // correct											$font_start = $font_red;											break;										case 1: // wrong											$font_start = $font_blue;											break;										case 2: // ignored											$font_start = $font_brown;											break;									}								} else { // numeric field									$font_start = $font_green;								}								$values[] = $font_start.round(100*$count/$q[$id]['count']['total']).'%'.$font_end.' '.$value;							}						} // end foreach $value => $count						// initialize stat(istics) row for this field, if required						if (!isset($table->stat[$row])) {							$table->stat[$row] = array(get_string($field, 'hotpot'));						}						// sort the values by frequency (using user-defined function)						usort($values, "hotpot_sort_stat_values");						// add stat(istics) values for this field						$table->stat[$row++][$col+1] = count($values) ? implode($br, $values) : $space;					}				} // end foreach field				// default percent correct and discrimination index for this question				$average = $no_value;				$percent = $no_value;				$d_index = $no_value;				if (isset($q[$id]['count'])) {					// average and percent correct					if ($q[$id]['count']['total']) {						$average = round($q[$id]['count']['sum'] / $q[$id]['count']['total']).'%';						$percent = round(100*$q[$id]['count']['correct'] / $q[$id]['count']['total']).'%';						$percent .= ' ('.$q[$id]['count']['correct'].'/'.$q[$id]['count']['total'].')';					}					// discrimination index					if ($q[$id]['count']['lo']) {						$d_index = min($max_d_index, round($q[$id]['count']['hi'] / $q[$id]['count']['lo'], 1));					} else {						$d_index = $q[$id]['count']['hi'] ? $max_d_index : 0;					}					$d_index .= ' ('.$q[$id]['count']['hi'].'/'.$q[$id]['count']['lo'].')';				}				$table->foot[0][$col+1] = $average;				$table->foot[1][$col+1] = $percent;				$table->foot[2][$col+1] = $d_index;			} // end foreach $question ($col)			// add javascript to show/hide question text			if (isset($table->stat[0]) && $is_html && empty($table->legend)) {				$i = count($table->stat[0]);				$table->stat[0][$i-1] .= hotpot_showhide_set($showhideid);			}			$tables[] = &$table;			$this->create_legend_table($tables, $table);		} // end if (empty($q)	} // end function} // end classfunction hotpot_sort_stat_values($a, $b) {	// sorts in descending order	// assumes first chars in $a and $b are a percentage	$a_val = intval(strip_tags($a));	$b_val = intval(strip_tags($b));	return ($a_val<$b_val) ? 1 : ($a_val==$b_val ? 0 : -1);}function hotpot_showhide_button($id) {	$show = get_string('show');	$hide = get_string('hide');	$pref = '1';	$text = ($pref=='1' ? $hide : $show);return <<<SHOWHIDE_BUTTON<script type="text/javascript">//<![CDATA[	function showhide (id, toggle) {		var show = true;		obj = document.getElementById(id+'pref');		if (obj) {			show = (obj.value=='1');			if (toggle) {				show = !show;				obj.value = (show ? '1' :  '0');			}		}		obj = document.getElementById(id+'button');		if (obj) {			obj.value = (show ? '$hide' : '$show');		}		obj = document.getElementsByName(id);		var i_max = obj.length;		for (var i=0; i<i_max; i++) {			obj[i].style.display = (show ? 'block' : 'none');		}	}	var showhide_allowed = (document.getElementById && document.getElementsByName);	if (showhide_allowed) {		var html = '';		html += '<form onsubmit="return false">';		html += '<input type="button" value="$text" id="{$id}button" onClick="javascript: return showhide(\\'$id\\', true);" />';		html += '<input type="hidden" name="{$id}pref" id="{$id}pref" value="$pref" />';		html += '</form>';		document.writeln(html);	}//]]></script>SHOWHIDE_BUTTON;}function hotpot_showhide_set($id) {return <<<SHOWHIDE_SET<script type="text/javascript">//<![CDATA[	if (showhide_allowed) {		showhide('$id');	}//]]></script>SHOWHIDE_SET;}?>

⌨️ 快捷键说明

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