ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ILIAS\Test\Results\Presentation\TitlesBuilder Class Reference
+ Collaboration diagram for ILIAS\Test\Results\Presentation\TitlesBuilder:

Public Member Functions

 __construct (protected Language $lng, protected \ilObjectDataCache $obj_cache)
 
 initObjectiveOrientedMode ()
 
 setObjectiveOrientedContainerId (int $container_id)
 
 setTestObjId (int $testObjId)
 
 setTestRefId (int $testRefId)
 
 setUserId (int $userId)
 
 setAttemptLastAccessDate (string $formatted_date)
 
 getPassOverviewHeaderLabel ()
 
 getPassDetailsHeaderLabel (int $attempt)
 
 getListOfAnswersHeaderLabel (int $attempt)
 
 getVirtualListOfAnswersHeaderLabel ()
 
 getVirtualPassDetailsHeaderLabel ($objectiveTitle)
 

Private Member Functions

 initTestType ()
 
 initObjectives ()
 
 initCourseTitle ()
 
 isInitialTest ()
 
 isQualifyingTest ()
 
 isInitialTestForAllObjectives ()
 
 isInitialTestPerObjective ()
 
 isQualifyingTestForAllObjectives ()
 
 isQualifyingTestPerObjective ()
 
 getObjectiveTitle (\ilLOTestRun $loRun)
 
 getObjectivesString ()
 
 getAttemptLabel (int $attempt)
 

Private Attributes

const LO_TEST_TYPE_INITIAL = 'loTestInitial'
 
const LO_TEST_TYPE_QUALIFYING = 'loTestQualifying'
 
int $objective_oriented_container_id = null
 
int $test_obj_id = null
 
int $test_ref_id = null
 
int $user_id = null
 
string $attempt_last_access_date = null
 
string $crs_title = null
 
string $test_type = null
 
array $objectives = []
 

Detailed Description

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

Definition at line 28 of file TitlesBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Test\Results\Presentation\TitlesBuilder::__construct ( protected Language  $lng,
protected \ilObjectDataCache  $obj_cache 
)

Definition at line 42 of file TitlesBuilder.php.

45  {
46  }

Member Function Documentation

◆ getAttemptLabel()

ILIAS\Test\Results\Presentation\TitlesBuilder::getAttemptLabel ( int  $attempt)
private

Definition at line 285 of file TitlesBuilder.php.

References ILIAS\Repository\lng().

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassDetailsHeaderLabel().

285  : string
286  {
287  return sprintf($this->lng->txt('tst_res_lo_try_n'), $attempt);
288  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getListOfAnswersHeaderLabel()

ILIAS\Test\Results\Presentation\TitlesBuilder::getListOfAnswersHeaderLabel ( int  $attempt)

Definition at line 147 of file TitlesBuilder.php.

References ILIAS\Repository\lng(), and null.

147  : string
148  {
149  $langVar = 'tst_eval_results_by_pass';
150 
151  if ($this->objective_oriented_container_id) {
152  $langVar = 'tst_eval_results_by_pass_lo';
153  }
154 
155  $title = sprintf($this->lng->txt($langVar), $attempt);
156 
157  if ($this->attempt_last_access_date === null) {
158  return $title;
159  }
160 
161  return "{$title} - {$this->attempt_last_access_date}";
162  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ getObjectivesString()

ILIAS\Test\Results\Presentation\TitlesBuilder::getObjectivesString ( )
private

Definition at line 280 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassDetailsHeaderLabel(), and ILIAS\Test\Results\Presentation\TitlesBuilder\getPassOverviewHeaderLabel().

280  : string
281  {
282  return implode(', ', $this->objectives);
283  }
+ Here is the caller graph for this function:

◆ getObjectiveTitle()

ILIAS\Test\Results\Presentation\TitlesBuilder::getObjectiveTitle ( \ilLOTestRun  $loRun)
private

Definition at line 275 of file TitlesBuilder.php.

References ilLOTestRun\getObjectiveId().

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\initObjectives().

276  {
277  return \ilCourseObjective::lookupObjectiveTitle($loRun->getObjectiveId());
278  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPassDetailsHeaderLabel()

ILIAS\Test\Results\Presentation\TitlesBuilder::getPassDetailsHeaderLabel ( int  $attempt)

Definition at line 119 of file TitlesBuilder.php.

References ILIAS\Test\Results\Presentation\TitlesBuilder\getAttemptLabel(), ILIAS\Test\Results\Presentation\TitlesBuilder\getObjectivesString(), ILIAS\Test\Results\Presentation\TitlesBuilder\isInitialTest(), ILIAS\Test\Results\Presentation\TitlesBuilder\isQualifyingTest(), and ILIAS\Repository\lng().

119  : string
120  {
121  if (!$this->objective_oriented_container_id) {
122  return sprintf(
123  $this->lng->txt('tst_pass_details_overview_table_title'),
124  $attempt
125  );
126  }
127 
128  if ($this->isInitialTest()) {
129  return sprintf(
130  $this->lng->txt('tst_pass_details_header_lo_initial'),
131  $this->getObjectivesString(),
132  $this->getAttemptLabel($attempt)
133  );
134  }
135 
136  if ($this->isQualifyingTest()) {
137  return sprintf(
138  $this->lng->txt('tst_pass_details_header_lo_qualifying'),
139  $this->getObjectivesString(),
140  $this->getAttemptLabel($attempt)
141  );
142  }
143 
144  return '';
145  }
+ Here is the call graph for this function:

◆ getPassOverviewHeaderLabel()

ILIAS\Test\Results\Presentation\TitlesBuilder::getPassOverviewHeaderLabel ( )

Definition at line 80 of file TitlesBuilder.php.

References ILIAS\Test\Results\Presentation\TitlesBuilder\$crs_title, ILIAS\Test\Results\Presentation\TitlesBuilder\getObjectivesString(), ILIAS\Test\Results\Presentation\TitlesBuilder\isInitialTestForAllObjectives(), ILIAS\Test\Results\Presentation\TitlesBuilder\isInitialTestPerObjective(), ILIAS\Test\Results\Presentation\TitlesBuilder\isQualifyingTestForAllObjectives(), ILIAS\Test\Results\Presentation\TitlesBuilder\isQualifyingTestPerObjective(), and ILIAS\Repository\lng().

80  : string
81  {
82  if (!$this->objective_oriented_container_id) {
83  return $this->lng->txt('tst_results_overview');
84  }
85 
86  if ($this->isInitialTestForAllObjectives()) {
87  return sprintf(
88  $this->lng->txt('tst_pass_overview_header_lo_initial_all_objectives'),
90  );
91  }
92 
93  if ($this->isInitialTestPerObjective()) {
94  return sprintf(
95  $this->lng->txt('tst_pass_overview_header_lo_initial_per_objective'),
96  $this->getObjectivesString(),
98  );
99  }
100 
101  if ($this->isQualifyingTestForAllObjectives()) {
102  return sprintf(
103  $this->lng->txt('tst_pass_overview_header_lo_qualifying_all_objectives'),
105  );
106  }
107 
108  if ($this->isQualifyingTestPerObjective()) {
109  return sprintf(
110  $this->lng->txt('tst_pass_overview_header_lo_qualifying_per_objective'),
111  $this->getObjectivesString(),
113  );
114  }
115 
116  return '';
117  }
+ Here is the call graph for this function:

◆ getVirtualListOfAnswersHeaderLabel()

ILIAS\Test\Results\Presentation\TitlesBuilder::getVirtualListOfAnswersHeaderLabel ( )

Definition at line 164 of file TitlesBuilder.php.

References ILIAS\Repository\lng().

164  : string
165  {
166  return $this->lng->txt('tst_eval_results_lo');
167  }
+ Here is the call graph for this function:

◆ getVirtualPassDetailsHeaderLabel()

ILIAS\Test\Results\Presentation\TitlesBuilder::getVirtualPassDetailsHeaderLabel (   $objectiveTitle)

Definition at line 169 of file TitlesBuilder.php.

References ILIAS\Test\Results\Presentation\TitlesBuilder\isInitialTest(), ILIAS\Test\Results\Presentation\TitlesBuilder\isQualifyingTest(), and ILIAS\Repository\lng().

169  : string
170  {
171  if ($this->isInitialTest()) {
172  return sprintf(
173  $this->lng->txt('tst_virtual_pass_header_lo_initial'),
174  $objectiveTitle
175  );
176  } elseif ($this->isQualifyingTest()) {
177  return sprintf(
178  $this->lng->txt('tst_virtual_pass_header_lo_qualifying'),
179  $objectiveTitle
180  );
181  }
182 
183  return '';
184  }
+ Here is the call graph for this function:

◆ initCourseTitle()

ILIAS\Test\Results\Presentation\TitlesBuilder::initCourseTitle ( )
private

Definition at line 208 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\initObjectiveOrientedMode().

209  {
210  $this->crs_title = $this->obj_cache->lookupTitle($this->objective_oriented_container_id);
211  }
+ Here is the caller graph for this function:

◆ initObjectiveOrientedMode()

ILIAS\Test\Results\Presentation\TitlesBuilder::initObjectiveOrientedMode ( )

◆ initObjectives()

ILIAS\Test\Results\Presentation\TitlesBuilder::initObjectives ( )
private

Definition at line 197 of file TitlesBuilder.php.

References ILIAS\Test\Results\Presentation\TitlesBuilder\getObjectiveTitle(), and ilLOTestRun\getRun().

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\initObjectiveOrientedMode().

198  {
199  $lo_attempts = \ilLOTestRun::getRun($this->objective_oriented_container_id, $this->user_id, $this->test_obj_id);
200 
201  $this->objectives = [];
202 
203  foreach ($lo_attempts as $lo_attempt) {
204  $this->objectives[$lo_attempt->getObjectiveId()] = $this->getObjectiveTitle($lo_attempt);
205  }
206  }
static getRun(int $a_container_id, int $a_user_id, int $a_test_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initTestType()

ILIAS\Test\Results\Presentation\TitlesBuilder::initTestType ( )
private

Definition at line 186 of file TitlesBuilder.php.

References ILIAS\Test\Results\Presentation\TitlesBuilder\$test_ref_id, and ilLOSettings\getInstanceByObjId().

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\initObjectiveOrientedMode().

187  {
188  $loSettings = \ilLOSettings::getInstanceByObjId($this->objective_oriented_container_id);
189 
190  if ($loSettings->getInitialTest() == $this->test_ref_id) {
191  $this->test_type = self::LO_TEST_TYPE_INITIAL;
192  } elseif ($loSettings->getQualifiedTest() == $this->test_ref_id) {
193  $this->test_type = self::LO_TEST_TYPE_QUALIFYING;
194  }
195  }
static getInstanceByObjId(int $a_obj_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isInitialTest()

ILIAS\Test\Results\Presentation\TitlesBuilder::isInitialTest ( )
private

Definition at line 213 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassDetailsHeaderLabel(), and ILIAS\Test\Results\Presentation\TitlesBuilder\getVirtualPassDetailsHeaderLabel().

213  : bool
214  {
215  return $this->test_type === self::LO_TEST_TYPE_INITIAL;
216  }
+ Here is the caller graph for this function:

◆ isInitialTestForAllObjectives()

ILIAS\Test\Results\Presentation\TitlesBuilder::isInitialTestForAllObjectives ( )
private

Definition at line 223 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassOverviewHeaderLabel().

223  : bool
224  {
225  if ($this->test_type !== self::LO_TEST_TYPE_INITIAL) {
226  return false;
227  }
228 
229  if (count($this->objectives) <= 1) {
230  return false;
231  }
232 
233  return true;
234  }
+ Here is the caller graph for this function:

◆ isInitialTestPerObjective()

ILIAS\Test\Results\Presentation\TitlesBuilder::isInitialTestPerObjective ( )
private

Definition at line 236 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassOverviewHeaderLabel().

236  : bool
237  {
238  if ($this->test_type !== self::LO_TEST_TYPE_INITIAL) {
239  return false;
240  }
241 
242  if (count($this->objectives) > 1) {
243  return false;
244  }
245 
246  return true;
247  }
+ Here is the caller graph for this function:

◆ isQualifyingTest()

ILIAS\Test\Results\Presentation\TitlesBuilder::isQualifyingTest ( )
private

Definition at line 218 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassDetailsHeaderLabel(), and ILIAS\Test\Results\Presentation\TitlesBuilder\getVirtualPassDetailsHeaderLabel().

218  : bool
219  {
220  return $this->test_type === self::LO_TEST_TYPE_QUALIFYING;
221  }
+ Here is the caller graph for this function:

◆ isQualifyingTestForAllObjectives()

ILIAS\Test\Results\Presentation\TitlesBuilder::isQualifyingTestForAllObjectives ( )
private

Definition at line 249 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassOverviewHeaderLabel().

249  : bool
250  {
251  if ($this->test_type !== self::LO_TEST_TYPE_QUALIFYING) {
252  return false;
253  }
254 
255  if (count($this->objectives) <= 1) {
256  return false;
257  }
258 
259  return true;
260  }
+ Here is the caller graph for this function:

◆ isQualifyingTestPerObjective()

ILIAS\Test\Results\Presentation\TitlesBuilder::isQualifyingTestPerObjective ( )
private

Definition at line 262 of file TitlesBuilder.php.

Referenced by ILIAS\Test\Results\Presentation\TitlesBuilder\getPassOverviewHeaderLabel().

262  : bool
263  {
264  if ($this->test_type !== self::LO_TEST_TYPE_QUALIFYING) {
265  return false;
266  }
267 
268  if (count($this->objectives) > 1) {
269  return false;
270  }
271 
272  return true;
273  }
+ Here is the caller graph for this function:

◆ setAttemptLastAccessDate()

ILIAS\Test\Results\Presentation\TitlesBuilder::setAttemptLastAccessDate ( string  $formatted_date)

Definition at line 75 of file TitlesBuilder.php.

75  : void
76  {
77  $this->attempt_last_access_date = $formatted_date;
78  }

◆ setObjectiveOrientedContainerId()

ILIAS\Test\Results\Presentation\TitlesBuilder::setObjectiveOrientedContainerId ( int  $container_id)

Definition at line 55 of file TitlesBuilder.php.

55  : void
56  {
57  $this->objective_oriented_container_id = $container_id;
58  }

◆ setTestObjId()

ILIAS\Test\Results\Presentation\TitlesBuilder::setTestObjId ( int  $testObjId)

Definition at line 60 of file TitlesBuilder.php.

60  : void
61  {
62  $this->test_obj_id = $testObjId;
63  }

◆ setTestRefId()

ILIAS\Test\Results\Presentation\TitlesBuilder::setTestRefId ( int  $testRefId)

Definition at line 65 of file TitlesBuilder.php.

65  : void
66  {
67  $this->test_ref_id = $testRefId;
68  }

◆ setUserId()

ILIAS\Test\Results\Presentation\TitlesBuilder::setUserId ( int  $userId)

Definition at line 70 of file TitlesBuilder.php.

70  : void
71  {
72  $this->user_id = $userId;
73  }

Field Documentation

◆ $attempt_last_access_date

string ILIAS\Test\Results\Presentation\TitlesBuilder::$attempt_last_access_date = null
private

Definition at line 37 of file TitlesBuilder.php.

◆ $crs_title

string ILIAS\Test\Results\Presentation\TitlesBuilder::$crs_title = null
private

◆ $objective_oriented_container_id

int ILIAS\Test\Results\Presentation\TitlesBuilder::$objective_oriented_container_id = null
private

Definition at line 33 of file TitlesBuilder.php.

◆ $objectives

array ILIAS\Test\Results\Presentation\TitlesBuilder::$objectives = []
private

Definition at line 40 of file TitlesBuilder.php.

◆ $test_obj_id

int ILIAS\Test\Results\Presentation\TitlesBuilder::$test_obj_id = null
private

Definition at line 34 of file TitlesBuilder.php.

◆ $test_ref_id

int ILIAS\Test\Results\Presentation\TitlesBuilder::$test_ref_id = null
private

◆ $test_type

string ILIAS\Test\Results\Presentation\TitlesBuilder::$test_type = null
private

Definition at line 39 of file TitlesBuilder.php.

◆ $user_id

int ILIAS\Test\Results\Presentation\TitlesBuilder::$user_id = null
private

Definition at line 36 of file TitlesBuilder.php.

◆ LO_TEST_TYPE_INITIAL

const ILIAS\Test\Results\Presentation\TitlesBuilder::LO_TEST_TYPE_INITIAL = 'loTestInitial'
private

Definition at line 30 of file TitlesBuilder.php.

◆ LO_TEST_TYPE_QUALIFYING

const ILIAS\Test\Results\Presentation\TitlesBuilder::LO_TEST_TYPE_QUALIFYING = 'loTestQualifying'
private

Definition at line 31 of file TitlesBuilder.php.


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