ILIAS  Release_5_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilQuestionCumulatedStatisticsTableGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2014 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once 'Services/Table/classes/class.ilTable2GUI.php';
5 require_once 'Services/Tree/classes/class.ilPathGUI.php';
6 require_once 'Services/Link/classes/class.ilLink.php';
7 
13 {
17  protected $question;
18 
25  public function __construct($controller, $cmd, $template_context, assQuestion $question)
26  {
27  $this->question = $question;
28  $this->setId('qst_usage_' . $question->getId());
29  parent::__construct($controller, $cmd);
30 
31  $this->setRowTemplate('tpl.il_as_qpl_question_cumulated_stats_table_row.html', 'Modules/TestQuestionPool');
32  $this->setLimit(PHP_INT_MAX);
33 
34  $this->setDefaultOrderField('result');
35  $this->setDefaultOrderDirection('ASC');
36 
37  $this->setTitle($this->lng->txt('question_cumulated_statistics'));
38  $this->setNoEntriesText($this->lng->txt('qpl_assessment_no_assessment_of_questions'));
39 
40  $this->disable('sort');
41  $this->disable('hits');
42  $this->disable('numinfo');
43 
44  $this->initColumns();
45  $this->initData();
46  }
47 
51  protected function initColumns()
52  {
53  $this->addColumn($this->lng->txt('result'), 'result');
54  $this->addColumn($this->lng->txt('value'), 'value');
55  }
56 
60  protected function initData()
61  {
62  $rows = array();
63 
64  $total_of_answers = $this->question->getTotalAnswers();
65 
66  if($total_of_answers)
67  {
68  $rows[] = array(
69  'result' => $this->lng->txt('qpl_assessment_total_of_answers'),
70  'value' => $total_of_answers
71  );
72 
73  $rows[] = array(
74  'result' => $this->lng->txt('qpl_assessment_total_of_right_answers'),
75  'value' => assQuestion::_getTotalRightAnswers($this->question->getId()) * 100.0
76  );
77  }
78  else
79  {
80  $this->disable('header');
81  }
82 
83  $this->setData($rows);
84  }
85 
90  public function numericOrdering($a_field)
91  {
92  if('value' == $a_field)
93  {
94  return true;
95  }
96 
97  return false;
98  }
99 
103  public function fillRow(array $row)
104  {
105  $this->tpl->setVariable('VAL_RESULT', $row['result']);
106  $this->tpl->setVariable('VAL_VALUE', sprintf("%2.2f", $row['value']) . ' %');
107  }
108 }