mirror of
https://github.com/moodle/moodle.git
synced 2025-08-09 02:46:40 +02:00
92 lines
2.4 KiB
PHP
92 lines
2.4 KiB
PHP
<?php
|
|
require_once($CFG->libdir.'/tablelib.php');
|
|
|
|
class quiz_report_statistics_question_table extends flexible_table {
|
|
/**
|
|
* @var object this question with _stats object.
|
|
*/
|
|
var $question;
|
|
|
|
function quiz_report_statistics_question_table($qid){
|
|
parent::flexible_table('mod-quiz-report-statistics-question-table'.$qid);
|
|
}
|
|
|
|
/**
|
|
* Setup the columns and headers and other properties of the table and then
|
|
* call flexible_table::setup() method.
|
|
*/
|
|
function setup($reporturl, $question, $hassubqs){
|
|
$this->question = $question;
|
|
// Define table columns
|
|
$columns = array();
|
|
$headers = array();
|
|
|
|
if ($hassubqs){
|
|
$columns[]= 'subq';
|
|
$headers[]= '';
|
|
}
|
|
|
|
$columns[]= 'response';
|
|
$headers[]= get_string('response', 'quiz_statistics');
|
|
|
|
|
|
$columns[]= 'credit';
|
|
$headers[]= get_string('optiongrade', 'quiz_statistics');
|
|
|
|
$columns[]= 'rcount';
|
|
$headers[]= get_string('count', 'quiz_statistics');
|
|
|
|
$columns[]= 'frequency';
|
|
$headers[]= get_string('frequency', 'quiz_statistics');
|
|
|
|
$this->define_columns($columns);
|
|
$this->define_headers($headers);
|
|
$this->sortable(false);
|
|
|
|
$this->column_class('credit', 'numcol');
|
|
$this->column_class('rcount', 'numcol');
|
|
$this->column_class('frequency', 'numcol');
|
|
|
|
// Set up the table
|
|
$this->define_baseurl($reporturl->out());
|
|
|
|
$this->collapsible(false);
|
|
|
|
$this->set_attribute('class', 'generaltable generalbox boxaligncenter');
|
|
|
|
parent::setup();
|
|
}
|
|
|
|
function col_response($response){
|
|
global $QTYPES;
|
|
if (!$this->is_downloading() || $this->is_downloading() == 'xhtml'){
|
|
return $QTYPES[$this->question->qtype]->format_response($response->response, $this->question->questiontextformat);
|
|
} else {
|
|
return $response->response;
|
|
}
|
|
}
|
|
|
|
function col_subq($response){
|
|
return $response->subq;
|
|
}
|
|
|
|
function col_credit($response){
|
|
if (!is_null($response->credit)){
|
|
return ($response->credit*100).'%';
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function col_frequency($response){
|
|
if ($this->question->_stats->s){
|
|
return format_float((($response->rcount / $this->question->_stats->s)*100),2).'%';
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|