4include_once(
"./Services/Export/classes/class.ilXmlImporter.php");
 
   29        include_once 
"./Modules/Test/classes/class.ilObjTest.php";
 
   32        if ($new_id = $a_mapping->getMapping(
'Services/Container', 
'objs', $a_id)) {
 
   37            $questionParentObjId = $newObj->getId();
 
   40            $new_id = $a_mapping->getMapping(
'Modules/Test', 
'tst', 
'new_id');
 
   43            if (isset(
$_SESSION[
'tst_import_qst_parent'])) {
 
   44                $questionParentObjId = 
$_SESSION[
'tst_import_qst_parent'];
 
   46                $questionParentObjId = $newObj->getId();
 
   50        $newObj->loadFromDb();
 
   55        if (!@file_exists($xml_file)) {
 
   56            $DIC[
'ilLog']->write(__METHOD__ . 
': Cannot find xml definition: ' . $xml_file);
 
   59        if (!@file_exists($qti_file)) {
 
   60            $DIC[
'ilLog']->write(__METHOD__ . 
': Cannot find xml definition: ' . $qti_file);
 
   69        $newObj->mark_schema->flush();
 
   72        if (isset(
$_SESSION[
'tst_import_idents'])) {
 
   79        include_once 
"./Services/QTI/classes/class.ilQTIParser.php";
 
   81        $qtiParser->setTestObject($newObj);
 
   82        $result = $qtiParser->startParsing();
 
   86        $contParser->setQuestionMapping($qtiParser->getImportMapping());
 
   87        $contParser->startParsing();
 
   89        foreach ($qtiParser->getQuestionIdMapping() as $oldQuestionId => $newQuestionId) {
 
   90            $a_mapping->addMapping(
 
   93                "tst:quest:$oldQuestionId",
 
   97            $a_mapping->addMapping(
 
  100                "tst:quest:$oldQuestionId",
 
  104            $a_mapping->addMapping(
 
  112        if ($newObj->isRandomTest()) {
 
  113            $newObj->questions = array();
 
  118        if (@file_exists(
$_SESSION[
"tst_import_results_file"])) {
 
  119            include_once(
"./Modules/Test/classes/class.ilTestResultsImportParser.php");
 
  121            $results->setQuestionIdMapping($a_mapping->getMappingsOfEntity(
'Modules/Test', 
'quest'));
 
  122            $results->setSrcPoolDefIdMapping($a_mapping->getMappingsOfEntity(
'Modules/Test', 
'rnd_src_pool_def'));
 
  133        $a_mapping->addMapping(
"Modules/Test", 
"tst", $a_id, $newObj->getId());
 
  146        $maps = $a_mapping->getMappingsOfEntity(
"Modules/Test", 
"tst");
 
  148        foreach ($maps as $old => $new) {
 
  149            if ($old == 
"new_id" || (
int) $old <= 0) {
 
  153            if (isset(self::$finallyProcessedTestsRegistry[$new])) {
 
  159            if ($testOBJ->isRandomTest()) {
 
  163            self::$finallyProcessedTestsRegistry[$new] = 
true;
 
  169        require_once 
'Services/Taxonomy/classes/class.ilObjTaxonomy.php';
 
  179        if ($new_tax_ids !== 
false) {
 
  180            $tax_ids = explode(
":", $new_tax_ids);
 
  182            foreach ($tax_ids as $tid) {
 
  191        require_once 
'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionFactory.php';
 
  197        require_once 
'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionList.php';
 
  204        $srcPoolDefList->loadDefinitions();
 
  206        foreach ($srcPoolDefList as $definition) {
 
  208            if (!is_array($definition->getMappedTaxonomyFilter()) || 0 === count($definition->getMappedTaxonomyFilter())) {
 
  212            $definition->setMappedTaxonomyFilter(
 
  215                    $definition->getMappedTaxonomyFilter()
 
  218            $definition->saveToDb();
 
  229        $newMappedFilter = array();
 
  231        foreach ($mappedFilter as $taxId => $taxNodes) {
 
  242            $newMappedFilter[$newTaxId] = array();
 
  244            foreach ($taxNodes as $taxNodeId) {
 
  251                if (!$newTaxNodeId) {
 
  255                $newMappedFilter[$newTaxId][] = $newTaxNodeId;
 
  259        return $newMappedFilter;
 
  274        $qti = $this->
getImportDirectory() . 
'/' . preg_replace(
'/test|tst/', 
'qti', $basename) . 
'.xml';
 
  276        return array(
$xml,$qti);
 
  282        $dir = dirname($dir);
 
  289        $name = basename($dir);
 
  295        require_once 
'Modules/Test/classes/class.ilObjTestXMLParser.php';
 
  297        $parser->setTestOBJ($testOBJ);
 
  298        $parser->setImportMapping($a_mapping);
 
  299        $parser->startParsing();
 
  310        require_once 
'Modules/TestQuestionPool/classes/questions/class.ilAssQuestionSkillAssignmentXmlParser.php';
 
  312        $parser->startParsing();
 
  314        require_once 
'Modules/TestQuestionPool/classes/questions/class.ilAssQuestionSkillAssignmentImporter.php';
 
  316        $importer->setTargetParentObjId($testOBJ->
getId());
 
  317        $importer->setImportInstallationId($this->
getInstallId());
 
  318        $importer->setImportMappingRegistry($mapping);
 
  319        $importer->setImportMappingComponent(
'Modules/Test');
 
  320        $importer->setImportAssignmentList($parser->getAssignmentList());
 
  324        if ($importer->getFailedImportAssignmentList()->assignmentsExist()) {
 
  325            require_once 
'Modules/TestQuestionPool/classes/questions/class.ilAssQuestionSkillAssignmentImportFails.php';
 
  327            $qsaImportFails->registerFailedImports($importer->getFailedImportAssignmentList());
 
  332        return $importer->getSuccessImportAssignmentList();
 
  343        require_once 
'Modules/Test/classes/class.ilTestSkillLevelThresholdXmlParser.php';
 
  345        $parser->startParsing();
 
  347        require_once 
'Modules/Test/classes/class.ilTestSkillLevelThresholdImporter.php';
 
  349        $importer->setTargetTestId($testOBJ->
getTestId());
 
  350        $importer->setImportInstallationId($this->
getInstallId());
 
  351        $importer->setImportMappingRegistry($mapping);
 
  352        $importer->setImportedQuestionSkillAssignmentList($assignmentList);
 
  353        $importer->setImportThresholdList($parser->getSkillLevelThresholdImportList());
 
  356        if ($importer->getFailedThresholdImportSkillList()->skillsExist()) {
 
  357            require_once 
'Modules/Test/classes/class.ilTestSkillLevelThresholdImportFails.php';
 
  359            $sltImportFails->registerFailedImports($importer->getFailedThresholdImportSkillList());
 
An exception for terminatinating execution or to throw for unit testing.
getMapping($a_comp, $a_entity, $a_old_id)
Get a mapping.
static saveUsage($a_tax_id, $a_obj_id)
Save Usage.
getTestId()
Gets the database id of the additional test data.
setOnline($a_online=true)
static _setImportDirectory($a_import_dir=null)
set import directory
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
setOfflineStatus($a_status)
Set offline status.
getId()
get object id @access public
Legacy Content Object Parser.
Importer class for files.
finalRandomTestTaxonomyProcessing(ilImportMapping $mapping, $oldTstObjId, $newTstObjId, ilObjTest $testOBJ)
importQuestionSkillAssignments(ilImportMapping $mapping, ilObjTest $testOBJ, $xmlFile)
importXmlRepresentation($a_entity, $a_id, $a_xml, $a_mapping)
Import XML.
importRandomQuestionSetConfig(ilObjTest $testOBJ, $xmlFile, $a_mapping)
finalProcessing($a_mapping)
Final processing.
importSkillLevelThresholds(ilImportMapping $mapping, ilAssQuestionSkillAssignmentList $assignmentList, ilObjTest $testOBJ, $xmlFile)
parseXmlFileNames()
Create qti and xml file name.
static $finallyProcessedTestsRegistry
getImportDirectoryContainer()
getNewMappedTaxonomyFilter(ilImportMapping $mapping, array $mappedFilter)
Test results import parser.
getInstallId()
Get installation id.
getImportDirectory()
Get import directory.