ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
ilTestScoring Class Reference

Class ilTestScoring. More...

+ Collaboration diagram for ilTestScoring:

Public Member Functions

 __construct (ilObjTest $test)
 
 setPreserveManualScores ( $preserve_manual_scores)
 
 getPreserveManualScores ()
 
 recalculateSolutions ()
 
 recalculatePasses ($userdata, $active_id)
 
 recalculatePass ($passdata, $active_id, $pass)
 

Protected Attributes

 $test
 
 $testGUI
 
 $preserve_manual_scores
 

Detailed Description

Class ilTestScoring.

This class holds a mechanism to get the scoring for

  • a test,
  • a user in a test,
  • a pass in a users passes in a test, or
  • a question in a pass in a users passes in a test.

Warning: Please use carefully, this is one of the classes that may cause funny spikes on your servers load graph on large datasets in the test.

Author
Maximilian Becker mbeck.nosp@m.er@d.nosp@m.ataba.nosp@m.y.de
Version
$Id$

Definition at line 23 of file class.ilTestScoring.php.

Constructor & Destructor Documentation

◆ __construct()

ilTestScoring::__construct ( ilObjTest  $test)

Definition at line 34 of file class.ilTestScoring.php.

35 {
36 $this->test = $test;
37 $this->preserve_manual_scores = false;
38
39 require_once './Modules/Test/classes/class.ilObjTestGUI.php';
40 $this->testGUI = new ilObjTestGUI();
41 }
Class ilObjTestGUI.

References $test.

Member Function Documentation

◆ getPreserveManualScores()

ilTestScoring::getPreserveManualScores ( )
Returns
boolean

Definition at line 54 of file class.ilTestScoring.php.

References $preserve_manual_scores.

◆ recalculatePass()

ilTestScoring::recalculatePass (   $passdata,
  $active_id,
  $pass 
)
Parameters
$passdata
$active_id
$pass

Definition at line 113 of file class.ilTestScoring.php.

114 {
115 $questions = $passdata->getAnsweredQuestions();
116 if (is_array( $questions ))
117 {
118 foreach ($questions as $questiondata)
119 {
120 $question_gui = $this->test->createQuestionGUI( "", $questiondata['id'] );
121 $this->recalculateQuestionScore( $question_gui, $active_id, $pass, $questiondata );
122 }
123 }
124
125 }

References $pass.

Referenced by recalculatePasses().

+ Here is the caller graph for this function:

◆ recalculatePasses()

ilTestScoring::recalculatePasses (   $userdata,
  $active_id 
)
Parameters
$userdata
$active_id

Definition at line 80 of file class.ilTestScoring.php.

81 {
82 require_once './Modules/Test/classes/class.ilTestEvaluationGUI.php'; // Below!
83 require_once './Modules/Test/classes/class.ilTestPDFGenerator.php';
84 require_once './Modules/Test/classes/class.ilTestArchiver.php';
85
86 $passes = $userdata->getPasses();
87 foreach ($passes as $pass => $passdata)
88 {
89 if (is_object( $passdata ))
90 {
91 $this->recalculatePass( $passdata, $active_id, $pass );
92 if ($this->test->getEnableArchiving())
93 {
94 // requires out of the loop!
95 $test_evaluation_gui = new ilTestEvaluationGUI($this->test);
96 $result_array = $this->test->getTestResult($active_id, $pass);
97 $overview = $test_evaluation_gui->getPassListOfAnswers($result_array, $active_id, $pass, true, false, false, true);
98 $filename = ilUtil::getWebspaceDir() . '/assessment/scores-'.$this->test->getId() . '-' . $active_id . '-' . $pass . '.pdf';
100 $archiver = new ilTestArchiver($this->test->getId());
101 $archiver->handInTestResult($active_id, $pass, $filename);
102 unlink($filename);
103 }
104 }
105 }
106 }
$filename
Definition: buildRTE.php:89
Class ilTestArchiver.
Output class for assessment test evaluation.
static generatePDF($pdf_output, $output_mode, $filename=null)
recalculatePass($passdata, $active_id, $pass)
static getWebspaceDir($mode="filesystem")
get webspace directory

References $filename, $pass, ilTestPDFGenerator\generatePDF(), ilUtil\getWebspaceDir(), ilTestPDFGenerator\PDF_OUTPUT_FILE, and recalculatePass().

Referenced by recalculateSolutions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ recalculateSolutions()

ilTestScoring::recalculateSolutions ( )

Definition at line 59 of file class.ilTestScoring.php.

60 {
61 $participants = $this->test->getCompleteEvaluationData(false)->getParticipants();
62 if (is_array($participants))
63 {
64 require_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
65 foreach ($participants as $active_id => $userdata)
66 {
67 if (is_object($userdata) && is_array($userdata->getPasses()))
68 {
69 $this->recalculatePasses( $userdata, $active_id );
70 }
72 }
73 }
74 }
_updateTestResultCache($active_id, ilAssQuestionProcessLocker $processLocker=null)
@TODO Move this to a proper place.
recalculatePasses($userdata, $active_id)

References assQuestion\_updateTestResultCache(), and recalculatePasses().

+ Here is the call graph for this function:

◆ setPreserveManualScores()

ilTestScoring::setPreserveManualScores (   $preserve_manual_scores)
Parameters
boolean$preserve_manual_scores

Definition at line 46 of file class.ilTestScoring.php.

47 {
48 $this->preserve_manual_scores = $preserve_manual_scores;
49 }

References $preserve_manual_scores.

Field Documentation

◆ $preserve_manual_scores

bool ilTestScoring::$preserve_manual_scores
protected

Definition at line 32 of file class.ilTestScoring.php.

Referenced by getPreserveManualScores(), and setPreserveManualScores().

◆ $test

ilObjTest ilTestScoring::$test
protected

Definition at line 26 of file class.ilTestScoring.php.

Referenced by __construct().

◆ $testGUI

ilObjTestGUI ilTestScoring::$testGUI
protected

Definition at line 29 of file class.ilTestScoring.php.


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