ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTestService Class Reference

Service class for tests. More...

+ Collaboration diagram for ilTestService:

Public Member Functions

 __construct (ilObjTest $a_object)
 public More...
 
 getPassOverviewData ($active_id, $short=false)
 public ilObjUser $ilUser More...
 
 getManScoringQuestionGuiList ($activeId, $pass)
 Returns the list of answers of a users test pass and offers a scoring option. More...
 

Static Public Member Functions

static isManScoringDone ($activeId)
 reads the flag wether manscoring is done for the given test active or not from the global settings (scope: assessment / key: manscoring_done_<activeId>) More...
 
static setManScoringDone ($activeId, $manScoringDone)
 stores the flag wether manscoring is done for the given test active or not within the global settings (scope: assessment / key: manscoring_done_<activeId>) More...
 

Protected Attributes

 $object = null
 

Detailed Description

Service class for tests.

Author
Björn Heyser bheys.nosp@m.er@d.nosp@m.ataba.nosp@m.y.de
Version
$Id$

Definition at line 12 of file class.ilTestService.php.

Constructor & Destructor Documentation

◆ __construct()

ilTestService::__construct ( ilObjTest  $a_object)

public

Parameters
ilObjTest$a_object

Definition at line 24 of file class.ilTestService.php.

25  {
26  $this->object = $a_object;
27  }

Member Function Documentation

◆ getManScoringQuestionGuiList()

ilTestService::getManScoringQuestionGuiList (   $activeId,
  $pass 
)

Returns the list of answers of a users test pass and offers a scoring option.

public

Parameters
integer$active_idActive ID of the active user
integer$passTest pass
Returns
string HTML code of the list of answers

Definition at line 128 of file class.ilTestService.php.

References $pass, and ilObjAssessmentFolder\_getManualScoring().

129  {
130  include_once "./Modules/Test/classes/class.ilObjAssessmentFolder.php";
131  $manScoringQuestionTypes = ilObjAssessmentFolder::_getManualScoring();
132 
133  $testResultData = $this->object->getTestResult($activeId, $pass);
134 
135  $manScoringQuestionGuiList = array();
136 
137  foreach($testResultData as $questionData)
138  {
139  if( !isset($questionData['qid']) )
140  {
141  continue;
142  }
143 
144  if( !isset($questionData['type']) )
145  {
146  throw new ilTestException('no question type given!');
147  }
148 
149  $questionGUI = $this->object->createQuestionGUI("", $questionData['qid']);
150 
151  if( !in_array($questionGUI->object->getQuestionTypeID(), $manScoringQuestionTypes) )
152  {
153  continue;
154  }
155 
156  $manScoringQuestionGuiList[ $questionData['qid'] ] = $questionGUI;
157  }
158 
159  return $manScoringQuestionGuiList;
160  }
Base Exception for all Exceptions relating to Modules/Test.
_getManualScoring()
Retrieve the manual scoring settings.
+ Here is the call graph for this function:

◆ getPassOverviewData()

ilTestService::getPassOverviewData (   $active_id,
  $short = false 
)

public ilObjUser $ilUser

Parameters
integer$active_id
boolean$short
Returns
array $passOverwiewData

Definition at line 36 of file class.ilTestService.php.

References $ilUser, and $pass.

37  {
38  $passOverwiewData = array();
39 
40  global $ilUser;
41 
42  $scoredPass = $this->object->_getResultPass($active_id);
43  $lastPass = $this->object->_getPass($active_id);
44 
45  $testPercentage = 0;
46  $testReachedPoints = 0;
47  $testMaxPoints = 0;
48 
49  for( $pass = 0; $pass <= $lastPass; $pass++)
50  {
51  $passFinishDate = $this->object->getPassFinishDate($active_id, $pass);
52 
53  if( $passFinishDate <= 0 )
54  {
55  continue;
56  }
57 
58  if( !$short )
59  {
60  $resultData =& $this->object->getTestResult($active_id, $pass);
61 
62  if (!$resultData["pass"]["total_max_points"])
63  {
64  $passPercentage = 0;
65  }
66  else
67  {
68  $passPercentage = ($resultData["pass"]["total_reached_points"]/$resultData["pass"]["total_max_points"])*100;
69  }
70 
71  $passMaxPoints = $resultData["pass"]["total_max_points"];
72  $passReachedPoints = $resultData["pass"]["total_reached_points"];
73 
74  $passAnsweredQuestions = $this->object->getAnsweredQuestionCount($active_id, $pass);
75  $passTotalQuestions = count($resultData) - 2;
76 
77  if( $pass == $scoredPass )
78  {
79  $isScoredPass = true;
80 
81  if (!$resultData["test"]["total_max_points"])
82  {
83  $testPercentage = 0;
84  }
85  else
86  {
87  $testPercentage = ($resultData["test"]["total_reached_points"]/$resultData["test"]["total_max_points"])*100;
88  }
89 
90  $testMaxPoints = $resultData["test"]["total_max_points"];
91  $testReachedPoints = $resultData["test"]["total_reached_points"];
92 
93  $passOverwiewData['test'] = array(
94  'active_id' => $active_id,
95  'scored_pass' => $scoredPass,
96  'max_points' => $testMaxPoints,
97  'reached_points' => $testReachedPoints,
98  'percentage' => $testPercentage
99  );
100  }
101  else $isScoredPass = false;
102 
103  $passOverwiewData['passes'][] = array(
104  'active_id' => $active_id,
105  'pass' => $pass,
106  'finishdate' => $passFinishDate,
107  'max_points' => $passMaxPoints,
108  'reached_points' => $passReachedPoints,
109  'percentage' => $passPercentage,
110  'answered_questions' => $passAnsweredQuestions,
111  'total_questions' => $passTotalQuestions,
112  'is_scored_pass' => $isScoredPass
113  );
114  }
115  }
116 
117  return $passOverwiewData;
118  }
global $ilUser
Definition: imgupload.php:15

◆ isManScoringDone()

static ilTestService::isManScoringDone (   $activeId)
static

reads the flag wether manscoring is done for the given test active or not from the global settings (scope: assessment / key: manscoring_done_<activeId>)

public

Parameters
integer$activeId
Returns
boolean $manScoringDone

Definition at line 171 of file class.ilTestService.php.

Referenced by ilTestScoringGUI\buildManScoringParticipantForm().

172  {
173  $assessmentSetting = new ilSetting("assessment");
174  return $assessmentSetting->get("manscoring_done_" . $activeId, false);
175  }
ILIAS Setting Class.
+ Here is the caller graph for this function:

◆ setManScoringDone()

static ilTestService::setManScoringDone (   $activeId,
  $manScoringDone 
)
static

stores the flag wether manscoring is done for the given test active or not within the global settings (scope: assessment / key: manscoring_done_<activeId>)

public

Parameters
integer$activeId
boolean$manScoringDone

Definition at line 186 of file class.ilTestService.php.

Referenced by ilTestScoringGUI\saveManScoringParticipantScreen().

187  {
188  $assessmentSetting = new ilSetting("assessment");
189  $assessmentSetting->set("manscoring_done_" . $activeId, (bool)$manScoringDone);
190  }
ILIAS Setting Class.
+ Here is the caller graph for this function:

Field Documentation

◆ $object

ilTestService::$object = null
protected

Definition at line 18 of file class.ilTestService.php.


The documentation for this class was generated from the following file: