ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilQuestionPoolTaxonomiesDuplicator Class Reference
+ Collaboration diagram for ilQuestionPoolTaxonomiesDuplicator:

Public Member Functions

 __construct ()
 
 setSourceObjId (int $source_obj_id)
 
 getSourceObjId ()
 
 getSourceObjType ()
 
 setSourceObjType (string $source_obj_type)
 
 getTargetObjId ()
 
 setTargetObjId (int $target_obj_id)
 
 getTargetObjType ()
 
 setTargetObjType (string $target_obj_type)
 
 setQuestionIdMapping (array $question_id_mapping)
 
 getQuestionIdMapping ()
 
 duplicate (array $pool_taxonomy_ids)
 
 getDuplicatedTaxonomiesKeysMap ()
 
 getAllTaxonomiesForSourceObject ()
 

Private Member Functions

 duplicateTaxonomyFromPoolToTest (int $pool_taxonomy_id)
 
 transferAssignmentsFromOriginalToDuplicatedTaxonomy (int $original_taxonomy_id, int $mapped_taxonomy_id)
 

Private Attributes

int $source_obj_id = null
 
string $source_obj_type = null
 
int $target_obj_id = null
 
string $target_obj_type = null
 
array $question_id_mapping = []
 
ilQuestionPoolDuplicatedTaxonomiesKeysMap $duplicated_taxonomies_keys_map
 

Detailed Description

Definition at line 27 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

Constructor & Destructor Documentation

◆ __construct()

ilQuestionPoolTaxonomiesDuplicator::__construct ( )

Member Function Documentation

◆ duplicate()

ilQuestionPoolTaxonomiesDuplicator::duplicate ( array  $pool_taxonomy_ids)
Parameters
array<int>$pool_taxonomy_ids

Definition at line 109 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References duplicateTaxonomyFromPoolToTest(), and transferAssignmentsFromOriginalToDuplicatedTaxonomy().

109  : void
110  {
111  foreach ($pool_taxonomy_ids as $pool_tax_id) {
112  $this->duplicateTaxonomyFromPoolToTest($pool_tax_id);
113 
115  $pool_tax_id,
116  $this->duplicated_taxonomies_keys_map->getMappedTaxonomyId($pool_tax_id)
117  );
118  }
119  }
transferAssignmentsFromOriginalToDuplicatedTaxonomy(int $original_taxonomy_id, int $mapped_taxonomy_id)
+ Here is the call graph for this function:

◆ duplicateTaxonomyFromPoolToTest()

ilQuestionPoolTaxonomiesDuplicator::duplicateTaxonomyFromPoolToTest ( int  $pool_taxonomy_id)
private

Definition at line 121 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References getTargetObjId(), and ilObjTaxonomy\saveUsage().

Referenced by duplicate().

121  : void
122  {
123  $pool_taxonomy = new ilObjTaxonomy($pool_taxonomy_id);
124  $test_taxonomy = new ilObjTaxonomy();
125  $test_taxonomy->create();
126  $test_taxonomy->setTitle($pool_taxonomy->getTitle());
127  $test_taxonomy->setDescription($pool_taxonomy->getDescription());
128  $test_taxonomy->setSortingMode($pool_taxonomy->getSortingMode());
129 
130  $pool_taxonomy->cloneNodes(
131  $test_taxonomy,
132  $test_taxonomy->getTree()->readRootId(),
133  $pool_taxonomy->getTree()->readRootId()
134  );
135 
136  $test_taxonomy->update();
137 
138  ilObjTaxonomy::saveUsage($test_taxonomy->getId(), $this->getTargetObjId());
139 
140  $this->duplicated_taxonomies_keys_map->addDuplicatedTaxonomy($pool_taxonomy, $test_taxonomy);
141  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static saveUsage(int $a_tax_id, int $a_obj_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAllTaxonomiesForSourceObject()

ilQuestionPoolTaxonomiesDuplicator::getAllTaxonomiesForSourceObject ( )

Definition at line 168 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References getSourceObjId(), and ilObjTaxonomy\getUsageOfObject().

168  : array
169  {
171  }
static getUsageOfObject(int $a_obj_id, bool $a_include_titles=false)
+ Here is the call graph for this function:

◆ getDuplicatedTaxonomiesKeysMap()

◆ getQuestionIdMapping()

ilQuestionPoolTaxonomiesDuplicator::getQuestionIdMapping ( )
Returns
array<int>

Definition at line 100 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $question_id_mapping.

Referenced by transferAssignmentsFromOriginalToDuplicatedTaxonomy().

+ Here is the caller graph for this function:

◆ getSourceObjId()

ilQuestionPoolTaxonomiesDuplicator::getSourceObjId ( )

Definition at line 54 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $source_obj_id.

Referenced by getAllTaxonomiesForSourceObject(), and transferAssignmentsFromOriginalToDuplicatedTaxonomy().

+ Here is the caller graph for this function:

◆ getSourceObjType()

ilQuestionPoolTaxonomiesDuplicator::getSourceObjType ( )

Definition at line 59 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $source_obj_type.

Referenced by transferAssignmentsFromOriginalToDuplicatedTaxonomy().

+ Here is the caller graph for this function:

◆ getTargetObjId()

ilQuestionPoolTaxonomiesDuplicator::getTargetObjId ( )

Definition at line 69 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $target_obj_id.

Referenced by duplicateTaxonomyFromPoolToTest(), and transferAssignmentsFromOriginalToDuplicatedTaxonomy().

+ Here is the caller graph for this function:

◆ getTargetObjType()

ilQuestionPoolTaxonomiesDuplicator::getTargetObjType ( )

Definition at line 79 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $target_obj_type.

Referenced by transferAssignmentsFromOriginalToDuplicatedTaxonomy().

+ Here is the caller graph for this function:

◆ setQuestionIdMapping()

ilQuestionPoolTaxonomiesDuplicator::setQuestionIdMapping ( array  $question_id_mapping)
Parameters
array<int>$question_id_mapping

Definition at line 92 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $question_id_mapping.

92  : void
93  {
94  $this->question_id_mapping = $question_id_mapping;
95  }

◆ setSourceObjId()

ilQuestionPoolTaxonomiesDuplicator::setSourceObjId ( int  $source_obj_id)

Definition at line 49 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $source_obj_id.

49  : void
50  {
51  $this->source_obj_id = $source_obj_id;
52  }

◆ setSourceObjType()

ilQuestionPoolTaxonomiesDuplicator::setSourceObjType ( string  $source_obj_type)

Definition at line 64 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $source_obj_type.

64  : void
65  {
66  $this->source_obj_type = $source_obj_type;
67  }

◆ setTargetObjId()

ilQuestionPoolTaxonomiesDuplicator::setTargetObjId ( int  $target_obj_id)

Definition at line 74 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $target_obj_id.

74  : void
75  {
76  $this->target_obj_id = $target_obj_id;
77  }

◆ setTargetObjType()

ilQuestionPoolTaxonomiesDuplicator::setTargetObjType ( string  $target_obj_type)

Definition at line 84 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References $target_obj_type.

84  : void
85  {
86  $this->target_obj_type = $target_obj_type;
87  }

◆ transferAssignmentsFromOriginalToDuplicatedTaxonomy()

ilQuestionPoolTaxonomiesDuplicator::transferAssignmentsFromOriginalToDuplicatedTaxonomy ( int  $original_taxonomy_id,
int  $mapped_taxonomy_id 
)
private

Definition at line 143 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

References getQuestionIdMapping(), getSourceObjId(), getSourceObjType(), getTargetObjId(), and getTargetObjType().

Referenced by duplicate().

143  : void
144  {
145  $original_tax_assignment = new ilTaxNodeAssignment($this->getSourceObjType(), $this->getSourceObjId(), 'quest', $original_taxonomy_id);
146 
147  $duplicate_tax_assignment = new ilTaxNodeAssignment($this->getTargetObjType(), $this->getTargetObjId(), 'quest', $mapped_taxonomy_id);
148 
149  foreach ($this->getQuestionIdMapping() as $original_question_id => $duplicated_question_id) {
150  $assignments = $original_tax_assignment->getAssignmentsOfItem($original_question_id);
151 
152  foreach ($assignments as $ass_data) {
153  $mapped_node_id = $this->duplicated_taxonomies_keys_map->getMappedTaxNodeId($ass_data['node_id']);
154 
155  $duplicate_tax_assignment->addAssignment($mapped_node_id, $duplicated_question_id);
156  }
157  }
158  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $duplicated_taxonomies_keys_map

ilQuestionPoolDuplicatedTaxonomiesKeysMap ilQuestionPoolTaxonomiesDuplicator::$duplicated_taxonomies_keys_map
private

◆ $question_id_mapping

array ilQuestionPoolTaxonomiesDuplicator::$question_id_mapping = []
private

◆ $source_obj_id

int ilQuestionPoolTaxonomiesDuplicator::$source_obj_id = null
private

Definition at line 29 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

Referenced by getSourceObjId(), and setSourceObjId().

◆ $source_obj_type

string ilQuestionPoolTaxonomiesDuplicator::$source_obj_type = null
private

◆ $target_obj_id

int ilQuestionPoolTaxonomiesDuplicator::$target_obj_id = null
private

Definition at line 33 of file class.ilQuestionPoolTaxonomiesDuplicator.php.

Referenced by getTargetObjId(), and setTargetObjId().

◆ $target_obj_type

string ilQuestionPoolTaxonomiesDuplicator::$target_obj_type = null
private

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