ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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.

285 : string
286 {
287 return sprintf($this->lng->txt('tst_res_lo_try_n'), $attempt);
288 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getListOfAnswersHeaderLabel()

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

Definition at line 147 of file TitlesBuilder.php.

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 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getObjectivesString()

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

Definition at line 280 of file TitlesBuilder.php.

280 : string
281 {
282 return implode(', ', $this->objectives);
283 }

◆ getObjectiveTitle()

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

Definition at line 275 of file TitlesBuilder.php.

276 {
277 return \ilCourseObjective::lookupObjectiveTitle($loRun->getObjectiveId());
278 }

References ilLOTestRun\getObjectiveId().

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

+ 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.

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 }

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

+ Here is the call graph for this function:

◆ getPassOverviewHeaderLabel()

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

Definition at line 80 of file TitlesBuilder.php.

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'),
89 $this->crs_title
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(),
97 $this->crs_title
98 );
99 }
100
102 return sprintf(
103 $this->lng->txt('tst_pass_overview_header_lo_qualifying_all_objectives'),
104 $this->crs_title
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(),
112 $this->crs_title
113 );
114 }
115
116 return '';
117 }

References 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().

+ Here is the call graph for this function:

◆ getVirtualListOfAnswersHeaderLabel()

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

Definition at line 164 of file TitlesBuilder.php.

164 : string
165 {
166 return $this->lng->txt('tst_eval_results_lo');
167 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getVirtualPassDetailsHeaderLabel()

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

Definition at line 169 of file TitlesBuilder.php.

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 }

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

+ Here is the call graph for this function:

◆ initCourseTitle()

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

Definition at line 208 of file TitlesBuilder.php.

209 {
210 $this->crs_title = $this->obj_cache->lookupTitle($this->objective_oriented_container_id);
211 }

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

+ Here is the caller graph for this function:

◆ initObjectiveOrientedMode()

◆ initObjectives()

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

Definition at line 197 of file TitlesBuilder.php.

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)

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

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

+ 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.

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)

References ilLOSettings\getInstanceByObjId(), ILIAS\Test\Results\Presentation\TitlesBuilder\LO_TEST_TYPE_INITIAL, and ILIAS\Test\Results\Presentation\TitlesBuilder\LO_TEST_TYPE_QUALIFYING.

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

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

◆ isInitialTest()

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

◆ isInitialTestForAllObjectives()

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

Definition at line 223 of file TitlesBuilder.php.

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 }

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

+ Here is the caller graph for this function:

◆ isInitialTestPerObjective()

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

Definition at line 236 of file TitlesBuilder.php.

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 }

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

+ Here is the caller graph for this function:

◆ isQualifyingTest()

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

◆ isQualifyingTestForAllObjectives()

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

Definition at line 249 of file TitlesBuilder.php.

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 }

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

+ Here is the caller graph for this function:

◆ isQualifyingTestPerObjective()

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

Definition at line 262 of file TitlesBuilder.php.

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 }

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

+ 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

Definition at line 38 of file TitlesBuilder.php.

◆ $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

Definition at line 35 of file TitlesBuilder.php.

◆ $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

◆ LO_TEST_TYPE_QUALIFYING

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

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