19 declare(strict_types=1);
   109             $this->component_repository
   112         $questionList->setTestObjId($this->testOBJ->getId());
   113         $questionList->setTestId($this->testOBJ->getTestId());
   114         $questionList->setPoolId($nonAvailablePool->
getId());
   116         $questionList->loadQuestions();
   118         $questions = array();
   119         $list = $questionList->getQuestions();
   120         foreach ($list as $questionId) {
   131         if (strlen($nonAvailablePool->
getTitle())) {
   141         $poolQidByTestQidMap = array();
   143         foreach ($questions as $questionOBJ) {
   146             $testQuestionId = $questionOBJ->getId();
   147             $poolQuestionId = $questionOBJ->duplicate(
false, 
'', 
'', $this->
getOwnerId(), $pool->
getId());
   149             $poolQidByTestQidMap[$testQuestionId] = $poolQuestionId;
   152         return $poolQidByTestQidMap;
   157         foreach ($poolQidByTestQidMap as $testQid => $poolQid) {
   165         $filteredTaxIds = array();
   167         foreach ($taxonomyIds as $taxonomyId) {
   169                 $this->testOBJ->getType(),
   170                 $this->testOBJ->getId(),
   175             foreach ($relatedQuestionIds as $questionId) {
   178                 if (count($assignedTaxNodes)) {
   179                     $filteredTaxIds[] = $taxonomyId;
   185         return $filteredTaxIds;
   191         $taxDuplicator->setSourceObjId($this->testOBJ->getId());
   192         $taxDuplicator->setSourceObjType($this->testOBJ->getType());
   193         $taxDuplicator->setTargetObjId($pool->
getId());
   194         $taxDuplicator->setTargetObjType($pool->
getType());
   195         $taxDuplicator->setQuestionIdMapping($poolQidByTestQidMap);
   198             $taxDuplicator->getAllTaxonomiesForSourceObject(),
   199             array_keys($poolQidByTestQidMap)
   202         return $taxDuplicator->getDuplicatedTaxonomiesKeysMap();
   207         array $mapped_taxonomy_filter
   209         $original_taxonomy_filter = [];
   210         foreach ($mapped_taxonomy_filter as $test_taxonomy_id => $test_tax_nodes) {
   212             if ($pool_taxonomy_id === null) {
   215             $original_taxonomy_filter[$pool_taxonomy_id] = [];
   217             foreach ($test_tax_nodes as $test_tax_node) {
   219                 if ($pool_tax_node !== null) {
   220                     $original_taxonomy_filter[$pool_taxonomy_id][] = $pool_tax_node;
   225         return $original_taxonomy_filter;
   231             if ($definition->getPoolId() != $nonAvailablePoolId) {
   235             $definition->setPoolId($derivedPoolId);
   239                 $definition->getMappedTaxonomyFilter()
   242             $definition->saveToDb();
 updateTestQuestionStage($poolQidByTestQidMap)
 
Readable part of repository interface to ilComponentDataDB. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
copyQuestionsToPool(ilObjQuestionPool $pool, $questions)
 
ilQuestionPoolFactory $poolFactory
 
getSourcePoolDefinitionList()
 
derive(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
 
static resetOriginalId(int $questionId)
 
static instantiateQuestion(int $question_id)
 
$sourcePoolDefinitionList
 
duplicateTaxonomies($poolQidByTestQidMap, ilObjQuestionPool $pool)
 
setTargetContainerRef($targetContainerRef)
 
getQuestionsForPool(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
 
__construct(ilDBInterface $ilDB, ilComponentRepository $component_repository, ilObjTest $testOBJ)
 
ilComponentRepository $component_repository
 
static saveOriginalId(int $questionId, int $originalId)
 
getAssignmentsOfItem(int $a_item_id)
Get assignments for item. 
 
buildOriginalTaxonomyFilterForDerivedPool(ilQuestionPoolDuplicatedTaxonomiesKeysMap $taxKeysMap, array $mapped_taxonomy_filter)
 
updateRelatedSourcePoolDefinitions(ilQuestionPoolDuplicatedTaxonomiesKeysMap $taxKeysMap, $derivedPoolId, $nonAvailablePoolId)
 
getMappedTaxonomyId(int $original_taxonomy_id)
 
createNewPool(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
 
setSourcePoolDefinitionList($sourcePoolDefinitionList)
 
getMappedTaxNodeId(int $original_tax_node_id)
 
filterForQuestionRelatedTaxonomies($taxonomyIds, $relatedQuestionIds)