ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
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.

References $test.

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.

Member Function Documentation

◆ getPreserveManualScores()

ilTestScoring::getPreserveManualScores ( )
Returns
boolean

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

References $preserve_manual_scores.

55  {
57  }

◆ recalculatePass()

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

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

References $pass, and assQuestion\_setReachedPoints().

Referenced by recalculatePasses().

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  }
+ Here is the call graph for this function:
+ 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.

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

Referenced by recalculateSolutions().

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  }
recalculatePass($passdata, $active_id, $pass)
Output class for assessment test evaluation.
$filename
Definition: buildRTE.php:89
Class ilTestArchiver.
static generatePDF($pdf_output, $output_mode, $filename=null)
static getWebspaceDir($mode="filesystem")
get webspace directory
handInTestResult($active_fi, $pass, $pdf_path)
Hands in an individual test result for a pass.
+ 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.

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

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)
Move this to a proper place.
recalculatePasses($userdata, $active_id)
+ 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.

References $preserve_manual_scores.

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

Field Documentation

◆ $preserve_manual_scores

ilTestScoring::$preserve_manual_scores
protected

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

Referenced by getPreserveManualScores(), and setPreserveManualScores().

◆ $test

ilTestScoring::$test
protected

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

Referenced by __construct().

◆ $testGUI

ilTestScoring::$testGUI
protected

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


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