4require_once 
'Modules/Test/classes/class.ilTestRandomQuestionSetStagingPoolQuestionList.php';
 
    5require_once 
'Modules/TestQuestionPool/classes/class.ilQuestionPoolFactory.php';
 
    6require_once 
'Modules/TestQuestionPool/classes/class.assQuestion.php';
 
  114        $questionList->setTestObjId($this->testOBJ->getId());
 
  115        $questionList->setTestId($this->testOBJ->getTestId());
 
  116        $questionList->setPoolId($nonAvailablePool->
getId());
 
  118        $questionList->loadQuestions();
 
  120        $questions = array();
 
  122        foreach ($questionList as $questionId) {
 
  133        if (strlen($nonAvailablePool->
getTitle())) {
 
  134            $pool->setTitle($nonAvailablePool->
getTitle());
 
  143        $poolQidByTestQidMap = array();
 
  145        foreach ($questions as $questionOBJ) {
 
  148            $testQuestionId = $questionOBJ->getId();
 
  149            $poolQuestionId = $questionOBJ->duplicate(
false, 
'', 
'', $this->
getOwnerId(), $pool->
getId());
 
  151            $poolQidByTestQidMap[$testQuestionId] = $poolQuestionId;
 
  154        return $poolQidByTestQidMap;
 
  159        foreach ($poolQidByTestQidMap as $testQid => $poolQid) {
 
  167        require_once 
'Services/Taxonomy/classes/class.ilTaxNodeAssignment.php';
 
  169        $filteredTaxIds = array();
 
  171        foreach ($taxonomyIds as $taxonomyId) {
 
  173                $this->testOBJ->getType(),
 
  174                $this->testOBJ->getId(),
 
  179            foreach ($relatedQuestionIds as $questionId) {
 
  180                $assignedTaxNodes = $taxNodeAssignment->getAssignmentsOfItem($questionId);
 
  182                if (count($assignedTaxNodes)) {
 
  183                    $filteredTaxIds[] = $taxonomyId;
 
  189        return $filteredTaxIds;
 
  194        require_once 
'Modules/TestQuestionPool/classes/class.ilQuestionPoolTaxonomiesDuplicator.php';
 
  196        $taxDuplicator->setSourceObjId($this->testOBJ->getId());
 
  197        $taxDuplicator->setSourceObjType($this->testOBJ->getType());
 
  198        $taxDuplicator->setTargetObjId($pool->
getId());
 
  199        $taxDuplicator->setTargetObjType($pool->
getType());
 
  200        $taxDuplicator->setQuestionIdMapping($poolQidByTestQidMap);
 
  203            $taxDuplicator->getAllTaxonomiesForSourceObject(),
 
  204            array_keys($poolQidByTestQidMap)
 
  207        return $taxDuplicator->getDuplicatedTaxonomiesKeysMap();
 
  212        $originalTaxonomyFilter = array();
 
  214        foreach ($mappedTaxonomyFilter as $testTaxonomyId => $testTaxNodes) {
 
  216            $originalTaxonomyFilter[$poolTaxonomyId] = array();
 
  218            foreach ($testTaxNodes as $testTaxNode) {
 
  220                $originalTaxonomyFilter[$poolTaxonomyId][] = $poolTaxNode;
 
  224        return $originalTaxonomyFilter;
 
  230            if ($definition->getPoolId() != $nonAvailablePoolId) {
 
  234            $definition->setPoolId($derivedPoolId);
 
  238                $definition->getMappedTaxonomyFilter()
 
  241            $definition->saveToDb();
 
An exception for terminatinating execution or to throw for unit testing.
static _instantiateQuestion($question_id)
static resetOriginalId($questionId)
static saveOriginalId($questionId, $originalId)
getType()
get object type @access public
getId()
get object id @access public
Administration class for plugins.
getMappedTaxonomyId($originalTaxonomyId)
getMappedTaxNodeId($originalTaxNodeId)
Taxonomy node <-> item assignment.
filterForQuestionRelatedTaxonomies($taxonomyIds, $relatedQuestionIds)
duplicateTaxonomies($poolQidByTestQidMap, ilObjQuestionPool $pool)
setSourcePoolDefinitionList($sourcePoolDefinitionList)
getQuestionsForPool(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
getSourcePoolDefinitionList()
$sourcePoolDefinitionList
updateRelatedSourcePoolDefinitions(ilQuestionPoolDuplicatedTaxonomiesKeysMap $taxKeysMap, $derivedPoolId, $nonAvailablePoolId)
buildOriginalTaxonomyFilterForDerivedPool(ilQuestionPoolDuplicatedTaxonomiesKeysMap $taxKeysMap, $mappedTaxonomyFilter)
createNewPool(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
copyQuestionsToPool(ilObjQuestionPool $pool, $questions)
derive(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
updateTestQuestionStage($poolQidByTestQidMap)
__construct(ilDBInterface $ilDB, ilPluginAdmin $pluginAdmin, ilObjTest $testOBJ)
setTargetContainerRef($targetContainerRef)