ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilTestArchiveService.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once './Modules/Test/classes/class.ilTestServiceGUI.php';
5 require_once './Modules/Test/classes/class.ilTestPDFGenerator.php';
6 require_once './Modules/Test/classes/class.ilTestArchiver.php';
7 
15 {
19  protected $testOBJ;
20 
24  protected $participantData;
25 
26  public function __construct(ilObjTest $testOBJ)
27  {
28  $this->testOBJ = $testOBJ;
29  $this->participantData = null;
30  }
31 
35  public function getParticipantData()
36  {
38  }
39 
44  {
45  $this->participantData = $participantData;
46  }
47 
48  public function archivePassesByActives($passesByActives)
49  {
50  foreach($passesByActives as $activeId => $passes)
51  {
52  foreach($passes as $pass)
53  {
54  $this->archiveActivesPass($activeId, $pass);
55  }
56  }
57  }
58 
59  public function archiveActivesPass($activeId, $pass)
60  {
61  $content = $this->renderOverviewContent($activeId, $pass);
62  $filename = $this->buildOverviewFilename($activeId, $pass);
63 
65 
66  $archiver = new ilTestArchiver($this->testOBJ->getId());
67  $archiver->setParticipantData($this->getParticipantData());
68  $archiver->handInTestResult($activeId, $pass, $filename);
69 
70  unlink($filename);
71  }
72 
78  private function renderOverviewContent($activeId, $pass)
79  {
80  $results = $this->testOBJ->getTestResult(
81  $activeId, $pass, false
82  );
83 
84  $gui = new ilTestServiceGUI($this->testOBJ);
85 
86  require_once 'Modules/Test/classes/class.ilTestResultHeaderLabelBuilder.php';
87  $testResultHeaderLabelBuilder = new ilTestResultHeaderLabelBuilder($GLOBALS['DIC']->language(), $GLOBALS['DIC']['ilObjDataCache']);
88 
89  return $gui->getPassListOfAnswers(
90  $results, $activeId, $pass, true, false, false, true, false, null, $testResultHeaderLabelBuilder
91  );
92  }
93 
99  private function buildOverviewFilename($activeId, $pass)
100  {
101  $tmpFileName = ilUtil::ilTempnam();
102  return dirname($tmpFileName).'/scores-'.$this->testOBJ->getId().'-'.$activeId.'-'.$pass.'.pdf';
103  }
104 }
renderOverviewContent($activeId, $pass)
archiveActivesPass($activeId, $pass)
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
setParticipantData(ilTestParticipantData $participantData)
archivePassesByActives($passesByActives)
$results
static ilTempnam($a_temp_path=null)
Create a temporary file in an ILIAS writable directory.
Class ilTestArchiver.
static generatePDF($pdf_output, $output_mode, $filename=null)
Service GUI class for tests.
buildOverviewFilename($activeId, $pass)
setParticipantData($participantData)