ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilTestRandomQuestionSetConfig Class Reference
+ Inheritance diagram for ilTestRandomQuestionSetConfig:
+ Collaboration diagram for ilTestRandomQuestionSetConfig:

Public Member Functions

 __construct (ilTree $tree, ilDBInterface $db, ilPluginAdmin $pluginAdmin, ilObjTest $testOBJ)
 
 setPoolsWithHomogeneousScoredQuestionsRequired ($requirePoolsWithHomogeneousScoredQuestions)
 
 arePoolsWithHomogeneousScoredQuestionsRequired ()
 
 setQuestionAmountConfigurationMode ($questionAmountConfigurationMode)
 
 getQuestionAmountConfigurationMode ()
 
 isQuestionAmountConfigurationModePerPool ()
 
 isQuestionAmountConfigurationModePerTest ()
 
 isValidQuestionAmountConfigurationMode ($amountMode)
 
 setQuestionAmountPerTest ($questionAmountPerTest)
 
 getQuestionAmountPerTest ()
 
 setLastQuestionSyncTimestamp ($lastQuestionSyncTimestamp)
 
 getLastQuestionSyncTimestamp ()
 
 getBuildableMessages ()
 
 initFromArray ($dataArray)
 initialises the current object instance with values from matching properties within the passed array More...
 
 loadFromDb ()
 loads the question set config for current test from the database More...
 
 saveToDb ()
 saves the question set config for current test to the database More...
 
 cloneToDbForTestId ($testId)
 saves the question set config for test with given id to the database More...
 
 deleteFromDb ()
 deletes the question set config for current test from the database More...
 
 isQuestionSetConfigured ()
 
 hasSourcePoolDefinitions ()
 
 isQuestionSetBuildable ()
 
 doesQuestionSetRelatedDataExist ()
 checks wether question set config related data exists or not More...
 
 removeQuestionSetRelatedData ()
 removes all question set config related data More...
 
 resetQuestionSetRelatedTestSettings ()
 resets all test settings that depends on a non changed question set config More...
 
 cloneQuestionSetRelatedData (ilObjTest $cloneTestOBJ)
 removes all question set config related data for cloned/copied test More...
 
 updateLastQuestionSyncTimestampForTestId ($testId, $timestamp)
 
 isResultTaxonomyFilterSupported ()
 
 getSelectableQuestionPools ()
 
 doesSelectableQuestionPoolsExist ()
 
 areDepenciesBroken ()
 
 getDepenciesBrokenMessage (ilLanguage $lng)
 
 isValidRequestOnBrokenQuestionSetDepencies ($nextClass, $cmd)
 
 getHiddenTabsOnBrokenDepencies ()
 
 getCommaSeparatedSourceQuestionPoolLinks ()
 
- Public Member Functions inherited from ilTestQuestionSetConfig
 __construct (ilTree $tree, ilDBInterface $db, ilPluginAdmin $pluginAdmin, ilObjTest $testOBJ)
 
 loadFromDb ()
 loads the question set config for current test from the database More...
 
 saveToDb ()
 saves the question set config for current test to the database More...
 
 cloneToDbForTestId ($testId)
 saves the question set config for test with given id to the database More...
 
 deleteFromDb ()
 deletes the question set config for current test from the database More...
 
 areDepenciesInVulnerableState ()
 
 getDepenciesInVulnerableStateMessage (ilLanguage $lng)
 
 areDepenciesBroken ()
 
 getDepenciesBrokenMessage (ilLanguage $lng)
 
 isValidRequestOnBrokenQuestionSetDepencies ($nextClass, $cmd)
 
 getHiddenTabsOnBrokenDepencies ()
 
 isQuestionSetConfigured ()
 
 doesQuestionSetRelatedDataExist ()
 checks wether question set config related data exists or not More...
 
 removeQuestionSetRelatedData ()
 removes all question set config related data More...
 
 resetQuestionSetRelatedTestSettings ()
 resets all test settings that depends on a non changed question set config More...
 
 cloneQuestionSetRelatedData (ilObjTest $cloneTestOBJ)
 removes all question set config related data for cloned/copied test More...
 
 getQuestionPoolPathString ($poolId)
 
 getFirstQuestionPoolRefIdByObjId (int $pool_obj_id)
 
 isResultTaxonomyFilterSupported ()
 

Data Fields

const QUESTION_AMOUNT_CONFIG_MODE_PER_TEST = 'TEST'
 
const QUESTION_AMOUNT_CONFIG_MODE_PER_POOL = 'POOL'
 

Private Member Functions

 dbRecordExists ($testId)
 checks wether a question set config for current test exists in the database More...
 
 updateDbRecord ($testId)
 updates the record in the database that corresponds to the question set config for the current test More...
 
 insertDbRecord ($testId)
 inserts a new record for the question set config for the current test into the database More...
 
 registerClonedSourcePoolDefinitionIdMapping (ilObjTest $cloneTestOBJ, $definitionIdMap)
 
 buildSourcePoolDefinitionList (ilObjTest $testOBJ)
 
 buildStagingPoolBuilder (ilObjTest $testOBJ)
 

Private Attributes

 $requirePoolsWithHomogeneousScoredQuestions = null
 
 $questionAmountConfigurationMode = null
 
 $questionAmountPerTest = null
 
 $lastQuestionSyncTimestamp = null
 
 $buildableMessages = array()
 

Additional Inherited Members

- Protected Attributes inherited from ilTestQuestionSetConfig
 $tree = null
 
 $db = null
 
 $pluginAdmin = null
 
 $testOBJ = null
 

Detailed Description

Definition at line 14 of file class.ilTestRandomQuestionSetConfig.php.

Constructor & Destructor Documentation

◆ __construct()

Member Function Documentation

◆ areDepenciesBroken()

ilTestRandomQuestionSetConfig::areDepenciesBroken ( )

Reimplemented from ilTestQuestionSetConfig.

Definition at line 515 of file class.ilTestRandomQuestionSetConfig.php.

516 {
517 return (bool) $this->testOBJ->isTestFinalBroken();
518 }

◆ arePoolsWithHomogeneousScoredQuestionsRequired()

ilTestRandomQuestionSetConfig::arePoolsWithHomogeneousScoredQuestionsRequired ( )

◆ buildSourcePoolDefinitionList()

ilTestRandomQuestionSetConfig::buildSourcePoolDefinitionList ( ilObjTest  $testOBJ)
private

Definition at line 449 of file class.ilTestRandomQuestionSetConfig.php.

450 {
451 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionFactory.php';
452 $sourcePoolDefinitionFactory = new ilTestRandomQuestionSetSourcePoolDefinitionFactory(
453 $this->db,
455 );
456
457 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionList.php';
458 $sourcePoolDefinitionList = new ilTestRandomQuestionSetSourcePoolDefinitionList(
459 $this->db,
460 $testOBJ,
461 $sourcePoolDefinitionFactory
462 );
463
464 return $sourcePoolDefinitionList;
465 }

References ilTestQuestionSetConfig\$testOBJ.

Referenced by cloneQuestionSetRelatedData(), doesQuestionSetRelatedDataExist(), getCommaSeparatedSourceQuestionPoolLinks(), hasSourcePoolDefinitions(), isQuestionSetBuildable(), and removeQuestionSetRelatedData().

+ Here is the caller graph for this function:

◆ buildStagingPoolBuilder()

ilTestRandomQuestionSetConfig::buildStagingPoolBuilder ( ilObjTest  $testOBJ)
private

Definition at line 467 of file class.ilTestRandomQuestionSetConfig.php.

468 {
469 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetStagingPoolBuilder.php';
470 $stagingPool = new ilTestRandomQuestionSetStagingPoolBuilder($this->db, $testOBJ);
471
472 return $stagingPool;
473 }

References ilTestQuestionSetConfig\$testOBJ.

Referenced by cloneQuestionSetRelatedData().

+ Here is the caller graph for this function:

◆ cloneQuestionSetRelatedData()

ilTestRandomQuestionSetConfig::cloneQuestionSetRelatedData ( ilObjTest  $cloneTestOBJ)

removes all question set config related data for cloned/copied test

Parameters
ilObjTest$cloneTestOBJ

Reimplemented from ilTestQuestionSetConfig.

Definition at line 407 of file class.ilTestRandomQuestionSetConfig.php.

408 {
409 // clone general config
410
411 $this->loadFromDb();
412 $this->cloneToDbForTestId($cloneTestOBJ->getTestId());
413
414 // clone source pool definitions (selection rules)
415
416 $sourcePoolDefinitionList = $this->buildSourcePoolDefinitionList($this->testOBJ);
417 $sourcePoolDefinitionList->loadDefinitions();
418 $definitionIdMap = $sourcePoolDefinitionList->cloneDefinitionsForTestId($cloneTestOBJ->getTestId());
419 $this->registerClonedSourcePoolDefinitionIdMapping($cloneTestOBJ, $definitionIdMap);
420
421 // build new question stage for cloned test
422
423 $sourcePoolDefinitionList = $this->buildSourcePoolDefinitionList($cloneTestOBJ);
424 $stagingPool = $this->buildStagingPoolBuilder($cloneTestOBJ);
425
426 $sourcePoolDefinitionList->loadDefinitions();
427 $stagingPool->rebuild($sourcePoolDefinitionList);
428 $sourcePoolDefinitionList->saveDefinitions();
429
430 $this->updateLastQuestionSyncTimestampForTestId($cloneTestOBJ->getTestId(), time());
431 }
getTestId()
Gets the database id of the additional test data.
cloneToDbForTestId($testId)
saves the question set config for test with given id to the database
registerClonedSourcePoolDefinitionIdMapping(ilObjTest $cloneTestOBJ, $definitionIdMap)
loadFromDb()
loads the question set config for current test from the database

References buildSourcePoolDefinitionList(), buildStagingPoolBuilder(), cloneToDbForTestId(), ilObjTest\getTestId(), loadFromDb(), registerClonedSourcePoolDefinitionIdMapping(), and updateLastQuestionSyncTimestampForTestId().

+ Here is the call graph for this function:

◆ cloneToDbForTestId()

ilTestRandomQuestionSetConfig::cloneToDbForTestId (   $testId)

saves the question set config for test with given id to the database

Parameters
$testId

Reimplemented from ilTestQuestionSetConfig.

Definition at line 214 of file class.ilTestRandomQuestionSetConfig.php.

215 {
216 $this->insertDbRecord($testId);
217 }
insertDbRecord($testId)
inserts a new record for the question set config for the current test into the database

References insertDbRecord().

Referenced by cloneQuestionSetRelatedData().

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

◆ dbRecordExists()

ilTestRandomQuestionSetConfig::dbRecordExists (   $testId)
private

checks wether a question set config for current test exists in the database

Parameters
$testId
Returns
boolean

Definition at line 239 of file class.ilTestRandomQuestionSetConfig.php.

240 {
241 $res = $this->db->queryF(
242 "SELECT COUNT(*) cnt FROM tst_rnd_quest_set_cfg WHERE test_fi = %s",
243 array('integer'),
244 array($testId)
245 );
246
247 $row = $this->db->fetchAssoc($res);
248
249 return (bool) $row['cnt'];
250 }
foreach($_POST as $key=> $value) $res

References $res.

Referenced by doesQuestionSetRelatedDataExist(), and saveToDb().

+ Here is the caller graph for this function:

◆ deleteFromDb()

ilTestRandomQuestionSetConfig::deleteFromDb ( )

deletes the question set config for current test from the database

Reimplemented from ilTestQuestionSetConfig.

Definition at line 222 of file class.ilTestRandomQuestionSetConfig.php.

223 {
224 $this->db->manipulateF(
225 "DELETE FROM tst_rnd_quest_set_cfg WHERE test_fi = %s",
226 array('integer'),
227 array($this->testOBJ->getTestId())
228 );
229 }

Referenced by removeQuestionSetRelatedData().

+ Here is the caller graph for this function:

◆ doesQuestionSetRelatedDataExist()

ilTestRandomQuestionSetConfig::doesQuestionSetRelatedDataExist ( )

checks wether question set config related data exists or not

Reimplemented from ilTestQuestionSetConfig.

Definition at line 364 of file class.ilTestRandomQuestionSetConfig.php.

365 {
366 if ($this->dbRecordExists($this->testOBJ->getTestId())) {
367 return true;
368 }
369
370 $sourcePoolDefinitionList = $this->buildSourcePoolDefinitionList($this->testOBJ);
371
372 if ($sourcePoolDefinitionList->savedDefinitionsExist()) {
373 return true;
374 }
375
376 return false;
377 }
dbRecordExists($testId)
checks wether a question set config for current test exists in the database

References buildSourcePoolDefinitionList(), and dbRecordExists().

+ Here is the call graph for this function:

◆ doesSelectableQuestionPoolsExist()

ilTestRandomQuestionSetConfig::doesSelectableQuestionPoolsExist ( )

Definition at line 508 of file class.ilTestRandomQuestionSetConfig.php.

509 {
510 return (bool) count($this->getSelectableQuestionPools());
511 }

References getSelectableQuestionPools().

+ Here is the call graph for this function:

◆ getBuildableMessages()

ilTestRandomQuestionSetConfig::getBuildableMessages ( )

◆ getCommaSeparatedSourceQuestionPoolLinks()

ilTestRandomQuestionSetConfig::getCommaSeparatedSourceQuestionPoolLinks ( )

Definition at line 563 of file class.ilTestRandomQuestionSetConfig.php.

564 {
565 $definitionList = $this->buildSourcePoolDefinitionList($this->testOBJ);
566 $definitionList->loadDefinitions();
567
568 $poolTitles = array();
569
570 foreach ($definitionList as $definition) {
571 /* @var ilTestRandomQuestionSetSourcePoolDefinition $definition */
572
573 $refId = current(ilObject::_getAllReferences($definition->getPoolId()));
574 $href = ilLink::_getLink($refId, 'qpl');
575 $title = $definition->getPoolTitle();
576
577 $poolTitles[$definition->getPoolId()] = "<a href=\"$href\" alt=\"$title\">$title</a>";
578 }
579
580 return implode(', ', $poolTitles);
581 }
static _getAllReferences($a_id)
get all reference ids of object
$refId
Definition: xapitoken.php:42

References $refId, ilObject\_getAllReferences(), ilLink\_getLink(), and buildSourcePoolDefinitionList().

+ Here is the call graph for this function:

◆ getDepenciesBrokenMessage()

ilTestRandomQuestionSetConfig::getDepenciesBrokenMessage ( ilLanguage  $lng)

Reimplemented from ilTestQuestionSetConfig.

Definition at line 520 of file class.ilTestRandomQuestionSetConfig.php.

521 {
522 return $lng->txt('tst_old_style_rnd_quest_set_broken');
523 }
$lng

References $lng.

◆ getHiddenTabsOnBrokenDepencies()

ilTestRandomQuestionSetConfig::getHiddenTabsOnBrokenDepencies ( )

Reimplemented from ilTestQuestionSetConfig.

Definition at line 554 of file class.ilTestRandomQuestionSetConfig.php.

555 {
556 return array(
557 'assQuestions', 'settings', 'manscoring', 'scoringadjust', 'statistics', 'history', 'export'
558 );
559 }

◆ getLastQuestionSyncTimestamp()

ilTestRandomQuestionSetConfig::getLastQuestionSyncTimestamp ( )
Returns
integer

Definition at line 141 of file class.ilTestRandomQuestionSetConfig.php.

References $lastQuestionSyncTimestamp.

Referenced by insertDbRecord(), isQuestionSetConfigured(), and updateDbRecord().

+ Here is the caller graph for this function:

◆ getQuestionAmountConfigurationMode()

ilTestRandomQuestionSetConfig::getQuestionAmountConfigurationMode ( )

◆ getQuestionAmountPerTest()

ilTestRandomQuestionSetConfig::getQuestionAmountPerTest ( )
Returns
integer

Definition at line 125 of file class.ilTestRandomQuestionSetConfig.php.

References $questionAmountPerTest.

Referenced by insertDbRecord(), and updateDbRecord().

+ Here is the caller graph for this function:

◆ getSelectableQuestionPools()

ilTestRandomQuestionSetConfig::getSelectableQuestionPools ( )

Definition at line 497 of file class.ilTestRandomQuestionSetConfig.php.

498 {
499 return $this->testOBJ->getAvailableQuestionpools(
500 true,
502 false,
503 true,
504 true
505 );
506 }

References arePoolsWithHomogeneousScoredQuestionsRequired().

Referenced by doesSelectableQuestionPoolsExist().

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

◆ hasSourcePoolDefinitions()

ilTestRandomQuestionSetConfig::hasSourcePoolDefinitions ( )

Definition at line 337 of file class.ilTestRandomQuestionSetConfig.php.

338 {
339 $sourcePoolDefinitionList = $this->buildSourcePoolDefinitionList($this->testOBJ);
340
341 return $sourcePoolDefinitionList->savedDefinitionsExist();
342 }

References buildSourcePoolDefinitionList().

Referenced by isQuestionSetConfigured().

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

◆ initFromArray()

ilTestRandomQuestionSetConfig::initFromArray (   $dataArray)

initialises the current object instance with values from matching properties within the passed array

Parameters
array$dataArray

Definition at line 161 of file class.ilTestRandomQuestionSetConfig.php.

162 {
163 foreach ($dataArray as $field => $value) {
164 switch ($field) {
165 case 'req_pools_homo_scored': $this->setPoolsWithHomogeneousScoredQuestionsRequired($value); break;
166 case 'quest_amount_cfg_mode': $this->setQuestionAmountConfigurationMode($value); break;
167 case 'quest_amount_per_test': $this->setQuestionAmountPerTest($value); break;
168 case 'quest_sync_timestamp': $this->setLastQuestionSyncTimestamp($value); break;
169 }
170 }
171 }
setQuestionAmountConfigurationMode($questionAmountConfigurationMode)
setLastQuestionSyncTimestamp($lastQuestionSyncTimestamp)
setPoolsWithHomogeneousScoredQuestionsRequired($requirePoolsWithHomogeneousScoredQuestions)

References setLastQuestionSyncTimestamp(), setPoolsWithHomogeneousScoredQuestionsRequired(), setQuestionAmountConfigurationMode(), and setQuestionAmountPerTest().

Referenced by loadFromDb().

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

◆ insertDbRecord()

ilTestRandomQuestionSetConfig::insertDbRecord (   $testId)
private

inserts a new record for the question set config for the current test into the database

Parameters
$testId

Definition at line 280 of file class.ilTestRandomQuestionSetConfig.php.

281 {
282 $this->db->insert('tst_rnd_quest_set_cfg', array(
283 'test_fi' => array('integer', $testId),
284 'req_pools_homo_scored' => array('integer', (int) $this->arePoolsWithHomogeneousScoredQuestionsRequired()),
285 'quest_amount_cfg_mode' => array('text', $this->getQuestionAmountConfigurationMode()),
286 'quest_amount_per_test' => array('integer', (int) $this->getQuestionAmountPerTest()),
287 'quest_sync_timestamp' => array('integer', (int) $this->getLastQuestionSyncTimestamp())
288 ));
289 }

References arePoolsWithHomogeneousScoredQuestionsRequired(), getLastQuestionSyncTimestamp(), getQuestionAmountConfigurationMode(), and getQuestionAmountPerTest().

Referenced by cloneToDbForTestId(), and saveToDb().

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

◆ isQuestionAmountConfigurationModePerPool()

ilTestRandomQuestionSetConfig::isQuestionAmountConfigurationModePerPool ( )

◆ isQuestionAmountConfigurationModePerTest()

ilTestRandomQuestionSetConfig::isQuestionAmountConfigurationModePerTest ( )
Returns
boolean

Definition at line 97 of file class.ilTestRandomQuestionSetConfig.php.

References getQuestionAmountConfigurationMode(), and QUESTION_AMOUNT_CONFIG_MODE_PER_TEST.

+ Here is the call graph for this function:

◆ isQuestionSetBuildable()

ilTestRandomQuestionSetConfig::isQuestionSetBuildable ( )

Definition at line 344 of file class.ilTestRandomQuestionSetConfig.php.

345 {
346 $sourcePoolDefinitionList = $this->buildSourcePoolDefinitionList($this->testOBJ);
347 $sourcePoolDefinitionList->loadDefinitions();
348
349 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetStagingPoolQuestionList.php';
350 $stagingPoolQuestionList = new ilTestRandomQuestionSetStagingPoolQuestionList($this->db, $this->pluginAdmin);
351
352 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetBuilder.php';
353 $questionSetBuilder = ilTestRandomQuestionSetBuilder::getInstance($this->db, $this->testOBJ, $this, $sourcePoolDefinitionList, $stagingPoolQuestionList);
354
355 //fau: fixRandomTestBuildable - get messages if set is not buildable
356 $buildable = $questionSetBuilder->checkBuildable();
357 $this->buildableMessages = $questionSetBuilder->getCheckMessages();
358 return $buildable;
359 // fau.
360
361 return $questionSetBuilder->checkBuildable();
362 }
static getInstance(ilDBInterface $db, ilObjTest $testOBJ, ilTestRandomQuestionSetConfig $questionSetConfig, ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList, ilTestRandomQuestionSetStagingPoolQuestionList $stagingPoolQuestionList)

References buildSourcePoolDefinitionList(), and ilTestRandomQuestionSetBuilder\getInstance().

Referenced by isQuestionSetConfigured().

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

◆ isQuestionSetConfigured()

ilTestRandomQuestionSetConfig::isQuestionSetConfigured ( )

Reimplemented from ilTestQuestionSetConfig.

Definition at line 293 of file class.ilTestRandomQuestionSetConfig.php.

294 {
295 // fau: delayCopyRandomQuestions - question set is not configured if date of last synchronisation is empty
296 if ($this->getLastQuestionSyncTimestamp() == 0) {
297 return false;
298 }
299 // fau.
300
301 if (!$this->isQuestionAmountConfigComplete()) {
302 return false;
303 }
304
305 if (!$this->hasSourcePoolDefinitions()) {
306 return false;
307 }
308
309 if (!$this->isQuestionSetBuildable()) {
310 return false;
311 }
312
313 return true;
314 }

References getLastQuestionSyncTimestamp(), hasSourcePoolDefinitions(), and isQuestionSetBuildable().

+ Here is the call graph for this function:

◆ isResultTaxonomyFilterSupported()

ilTestRandomQuestionSetConfig::isResultTaxonomyFilterSupported ( )

Reimplemented from ilTestQuestionSetConfig.

Definition at line 490 of file class.ilTestRandomQuestionSetConfig.php.

491 {
492 return true;
493 }

◆ isValidQuestionAmountConfigurationMode()

ilTestRandomQuestionSetConfig::isValidQuestionAmountConfigurationMode (   $amountMode)

Definition at line 102 of file class.ilTestRandomQuestionSetConfig.php.

103 {
104 switch ($amountMode) {
107
108 return true;
109 }
110
111 return false;
112 }

References QUESTION_AMOUNT_CONFIG_MODE_PER_POOL, and QUESTION_AMOUNT_CONFIG_MODE_PER_TEST.

◆ isValidRequestOnBrokenQuestionSetDepencies()

ilTestRandomQuestionSetConfig::isValidRequestOnBrokenQuestionSetDepencies (   $nextClass,
  $cmd 
)

Reimplemented from ilTestQuestionSetConfig.

Definition at line 525 of file class.ilTestRandomQuestionSetConfig.php.

526 {
527 //vd($nextClass, $cmd);
528
529 switch ($nextClass) {
530 case 'ilobjectmetadatagui':
531 case 'ilpermissiongui':
532
533 return true;
534
535 case 'ilobjtestgui':
536 case '':
537
538 $cmds = array(
539 'infoScreen', 'participants', 'npSetFilter', 'npResetFilter',
540 //'deleteAllUserResults', 'confirmDeleteAllUserResults',
541 //'deleteSingleUserResults', 'confirmDeleteSelectedUserData', 'cancelDeleteSelectedUserData'
542 );
543
544 if (in_array($cmd, $cmds)) {
545 return true;
546 }
547
548 break;
549 }
550
551 return false;
552 }

◆ loadFromDb()

ilTestRandomQuestionSetConfig::loadFromDb ( )

loads the question set config for current test from the database

Returns
boolean

Reimplemented from ilTestQuestionSetConfig.

Definition at line 178 of file class.ilTestRandomQuestionSetConfig.php.

179 {
180 $res = $this->db->queryF(
181 "SELECT * FROM tst_rnd_quest_set_cfg WHERE test_fi = %s",
182 array('integer'),
183 array($this->testOBJ->getTestId())
184 );
185
186 while ($row = $this->db->fetchAssoc($res)) {
187 $this->initFromArray($row);
188
189 return true;
190 }
191
192 return false;
193 }
initFromArray($dataArray)
initialises the current object instance with values from matching properties within the passed array

References $res, and initFromArray().

Referenced by cloneQuestionSetRelatedData().

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

◆ registerClonedSourcePoolDefinitionIdMapping()

ilTestRandomQuestionSetConfig::registerClonedSourcePoolDefinitionIdMapping ( ilObjTest  $cloneTestOBJ,
  $definitionIdMap 
)
private

Definition at line 433 of file class.ilTestRandomQuestionSetConfig.php.

434 {
435 global $DIC;
436 $ilLog = $DIC['ilLog'];
437
438 require_once 'Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
440
441 foreach ($definitionIdMap as $originalDefinitionId => $cloneDefinitionId) {
442 $originalKey = $this->testOBJ->getRefId() . '_rndSelDef_' . $originalDefinitionId;
443 $mappedKey = $cloneTestOBJ->getRefId() . '_rndSelDef_' . $cloneDefinitionId;
444 $cwo->appendMapping($originalKey, $mappedKey);
445 $ilLog->write(__METHOD__ . ": Added random selection definition id mapping $originalKey <-> $mappedKey");
446 }
447 }
static _getInstance($a_copy_id)
Get instance of copy wizard options.
getRefId()
get reference id @access public
$DIC
Definition: xapitoken.php:46

References $DIC, $ilLog, ilCopyWizardOptions\_getInstance(), ilObject\getRefId(), and ilObjTest\getTmpCopyWizardCopyId().

Referenced by cloneQuestionSetRelatedData().

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

◆ removeQuestionSetRelatedData()

ilTestRandomQuestionSetConfig::removeQuestionSetRelatedData ( )

removes all question set config related data

Reimplemented from ilTestQuestionSetConfig.

Definition at line 379 of file class.ilTestRandomQuestionSetConfig.php.

380 {
381 $sourcePoolDefinitionList = $this->buildSourcePoolDefinitionList($this->testOBJ);
382 $sourcePoolDefinitionList->deleteDefinitions();
383
384 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetStagingPoolBuilder.php';
386 $this->db,
387 $this->testOBJ
388 );
389 $stagingPool->reset();
390
392
393 $this->deleteFromDb();
394 }
resetQuestionSetRelatedTestSettings()
resets all test settings that depends on a non changed question set config
deleteFromDb()
deletes the question set config for current test from the database

References buildSourcePoolDefinitionList(), deleteFromDb(), and resetQuestionSetRelatedTestSettings().

+ Here is the call graph for this function:

◆ resetQuestionSetRelatedTestSettings()

ilTestRandomQuestionSetConfig::resetQuestionSetRelatedTestSettings ( )

resets all test settings that depends on a non changed question set config

Reimplemented from ilTestQuestionSetConfig.

Definition at line 396 of file class.ilTestRandomQuestionSetConfig.php.

397 {
398 $this->testOBJ->setResultFilterTaxIds(array());
399 $this->testOBJ->saveToDb(true);
400 }

Referenced by removeQuestionSetRelatedData().

+ Here is the caller graph for this function:

◆ saveToDb()

ilTestRandomQuestionSetConfig::saveToDb ( )

saves the question set config for current test to the database

Returns
boolean

Reimplemented from ilTestQuestionSetConfig.

Definition at line 200 of file class.ilTestRandomQuestionSetConfig.php.

201 {
202 if ($this->dbRecordExists($this->testOBJ->getTestId())) {
203 $this->updateDbRecord($this->testOBJ->getTestId());
204 } else {
205 $this->insertDbRecord($this->testOBJ->getTestId());
206 }
207 }
updateDbRecord($testId)
updates the record in the database that corresponds to the question set config for the current test

References dbRecordExists(), insertDbRecord(), and updateDbRecord().

+ Here is the call graph for this function:

◆ setLastQuestionSyncTimestamp()

ilTestRandomQuestionSetConfig::setLastQuestionSyncTimestamp (   $lastQuestionSyncTimestamp)
Parameters
integer$lastQuestionSyncTimestamp

Definition at line 133 of file class.ilTestRandomQuestionSetConfig.php.

134 {
135 $this->lastQuestionSyncTimestamp = $lastQuestionSyncTimestamp;
136 }

References $lastQuestionSyncTimestamp.

Referenced by initFromArray().

+ Here is the caller graph for this function:

◆ setPoolsWithHomogeneousScoredQuestionsRequired()

ilTestRandomQuestionSetConfig::setPoolsWithHomogeneousScoredQuestionsRequired (   $requirePoolsWithHomogeneousScoredQuestions)
Parameters
boolean$requirePoolsWithHomogeneousScoredQuestions

Definition at line 57 of file class.ilTestRandomQuestionSetConfig.php.

58 {
59 $this->requirePoolsWithHomogeneousScoredQuestions = $requirePoolsWithHomogeneousScoredQuestions;
60 }

References $requirePoolsWithHomogeneousScoredQuestions.

Referenced by initFromArray().

+ Here is the caller graph for this function:

◆ setQuestionAmountConfigurationMode()

ilTestRandomQuestionSetConfig::setQuestionAmountConfigurationMode (   $questionAmountConfigurationMode)
Parameters
string$questionAmountConfigurationMode

Definition at line 73 of file class.ilTestRandomQuestionSetConfig.php.

74 {
75 $this->questionAmountConfigurationMode = $questionAmountConfigurationMode;
76 }

References $questionAmountConfigurationMode.

Referenced by initFromArray().

+ Here is the caller graph for this function:

◆ setQuestionAmountPerTest()

ilTestRandomQuestionSetConfig::setQuestionAmountPerTest (   $questionAmountPerTest)
Parameters
integer$questionAmountPerTest

Definition at line 117 of file class.ilTestRandomQuestionSetConfig.php.

118 {
119 $this->questionAmountPerTest = $questionAmountPerTest;
120 }

References $questionAmountPerTest.

Referenced by initFromArray().

+ Here is the caller graph for this function:

◆ updateDbRecord()

ilTestRandomQuestionSetConfig::updateDbRecord (   $testId)
private

updates the record in the database that corresponds to the question set config for the current test

Parameters
$testId

Definition at line 258 of file class.ilTestRandomQuestionSetConfig.php.

259 {
260 $this->db->update(
261 'tst_rnd_quest_set_cfg',
262 array(
263 'req_pools_homo_scored' => array('integer', (int) $this->arePoolsWithHomogeneousScoredQuestionsRequired()),
264 'quest_amount_cfg_mode' => array('text', $this->getQuestionAmountConfigurationMode()),
265 'quest_amount_per_test' => array('integer', (int) $this->getQuestionAmountPerTest()),
266 'quest_sync_timestamp' => array('integer', (int) $this->getLastQuestionSyncTimestamp())
267 ),
268 array(
269 'test_fi' => array('integer', $testId)
270 )
271 );
272 }

References arePoolsWithHomogeneousScoredQuestionsRequired(), getLastQuestionSyncTimestamp(), getQuestionAmountConfigurationMode(), and getQuestionAmountPerTest().

Referenced by saveToDb().

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

◆ updateLastQuestionSyncTimestampForTestId()

ilTestRandomQuestionSetConfig::updateLastQuestionSyncTimestampForTestId (   $testId,
  $timestamp 
)

Definition at line 477 of file class.ilTestRandomQuestionSetConfig.php.

478 {
479 $this->db->update(
480 'tst_rnd_quest_set_cfg',
481 array(
482 'quest_sync_timestamp' => array('integer', (int) $timestamp)
483 ),
484 array(
485 'test_fi' => array('integer', $testId)
486 )
487 );
488 }
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:81

References $timestamp.

Referenced by cloneQuestionSetRelatedData().

+ Here is the caller graph for this function:

Field Documentation

◆ $buildableMessages

ilTestRandomQuestionSetConfig::$buildableMessages = array()
private

Definition at line 40 of file class.ilTestRandomQuestionSetConfig.php.

Referenced by getBuildableMessages().

◆ $lastQuestionSyncTimestamp

ilTestRandomQuestionSetConfig::$lastQuestionSyncTimestamp = null
private

◆ $questionAmountConfigurationMode

ilTestRandomQuestionSetConfig::$questionAmountConfigurationMode = null
private

◆ $questionAmountPerTest

ilTestRandomQuestionSetConfig::$questionAmountPerTest = null
private

◆ $requirePoolsWithHomogeneousScoredQuestions

ilTestRandomQuestionSetConfig::$requirePoolsWithHomogeneousScoredQuestions = null
private

◆ QUESTION_AMOUNT_CONFIG_MODE_PER_POOL

◆ QUESTION_AMOUNT_CONFIG_MODE_PER_TEST


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