ILIAS  release_4-4 Revision
ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator Class Reference
+ Collaboration diagram for ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator:

Public Member Functions

 __construct (ilObjTest $testOBJ, $sourcePoolId, $questionIdMapping)
 
 setSourcePoolId ($sourcePoolId)
 
 getSourcePoolId ()
 
 setQuestionIdMapping ($questionIdMapping)
 
 getQuestionIdMapping ()
 
 duplicate ()
 
 getDuplicatedTaxonomiesKeysMap ()
 

Data Fields

 $testOBJ = null
 

Private Member Functions

 duplicateTaxonomyFromPoolToTest ($poolTaxonomyId)
 
 transferAssignmentsFromOriginalToDuplicatedTaxonomy ($originalTaxonomyId, $mappedTaxonomyId)
 

Private Attributes

 $sourcePoolId = null
 
 $questionIdMapping = null
 
 $duplicatedTaxonomiesKeysMap = null
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

Member Function Documentation

◆ duplicate()

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::duplicate ( )

Definition at line 62 of file class.ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator.php.

References duplicateTaxonomyFromPoolToTest(), getSourcePoolId(), ilObjTaxonomy\getUsageOfObject(), and transferAssignmentsFromOriginalToDuplicatedTaxonomy().

63  {
64  $poolTaxonomyIds = ilObjTaxonomy::getUsageOfObject($this->getSourcePoolId());
65 
66  foreach($poolTaxonomyIds as $poolTaxId)
67  {
68  $this->duplicateTaxonomyFromPoolToTest($poolTaxId);
69 
71  $poolTaxId, $this->duplicatedTaxonomiesKeysMap->getMappedTaxonomyId($poolTaxId)
72  );
73  }
74  }
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
+ Here is the call graph for this function:

◆ duplicateTaxonomyFromPoolToTest()

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::duplicateTaxonomyFromPoolToTest (   $poolTaxonomyId)
private

Definition at line 76 of file class.ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator.php.

References ilObjTaxonomy\saveUsage().

Referenced by duplicate().

77  {
78  $testTaxonomy = new ilObjTaxonomy();
79  $testTaxonomy->create();
80 
81  $poolTaxonomy = new ilObjTaxonomy($poolTaxonomyId);
82  $poolTaxonomy->doCloneObject($testTaxonomy, null, null);
83 
84  $poolTaxonomy->getTree()->readRootId();
85  $testTaxonomy->getTree()->readRootId();
86 
87  $testTaxonomy->update();
88 
89  ilObjTaxonomy::saveUsage( $testTaxonomy->getId(), $this->testOBJ->getId() );
90 
91  $this->duplicatedTaxonomiesKeysMap->addDuplicatedTaxonomy($poolTaxonomy, $testTaxonomy);
92  }
static saveUsage($a_tax_id, $a_obj_id)
Save Usage.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDuplicatedTaxonomiesKeysMap()

◆ getQuestionIdMapping()

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::getQuestionIdMapping ( )

◆ getSourcePoolId()

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::getSourcePoolId ( )

◆ setQuestionIdMapping()

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::setQuestionIdMapping (   $questionIdMapping)

◆ setSourcePoolId()

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::setSourcePoolId (   $sourcePoolId)

◆ transferAssignmentsFromOriginalToDuplicatedTaxonomy()

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::transferAssignmentsFromOriginalToDuplicatedTaxonomy (   $originalTaxonomyId,
  $mappedTaxonomyId 
)
private

Definition at line 94 of file class.ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator.php.

References ilTaxNodeAssignment\getAssignmentsOfItem(), getQuestionIdMapping(), and getSourcePoolId().

Referenced by duplicate().

95  {
96  $originalTaxAssignment = new ilTaxNodeAssignment('qpl', $this->getSourcePoolId(), 'quest', $originalTaxonomyId);
97 
98  $duplicatedTaxAssignment = new ilTaxNodeAssignment('tst', $this->testOBJ->getId(), 'quest', $mappedTaxonomyId);
99 
100  foreach($this->getQuestionIdMapping() as $originalQuestionId => $duplicatedQuestionId)
101  {
102  $assignments = $originalTaxAssignment->getAssignmentsOfItem($originalQuestionId);
103 
104  foreach($assignments as $assData)
105  {
106  $mappedNodeId = $this->duplicatedTaxonomiesKeysMap->getMappedTaxNodeId($assData['node_id']);
107 
108  $duplicatedTaxAssignment->addAssignment($mappedNodeId, $duplicatedQuestionId);
109  }
110  }
111  }
getAssignmentsOfItem($a_item_id)
Get assignments for item.
Taxonomy node <-> item assignment.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $duplicatedTaxonomiesKeysMap

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::$duplicatedTaxonomiesKeysMap = null
private

◆ $questionIdMapping

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::$questionIdMapping = null
private

◆ $sourcePoolId

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::$sourcePoolId = null
private

◆ $testOBJ

ilTestRandomQuestionSetSourcePoolTaxonomiesDuplicator::$testOBJ = null

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