4 include_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) {
189 $ilDB = $DIC[
'ilDB'];
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';
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';
getMapping($a_comp, $a_entity, $a_old_id)
Get a mapping.
setOnline($a_online=true)
registerFailedImports(ilAssQuestionAssignedSkillList $skillList)
getImportDirectory()
Get import directory.
getTestId()
Gets the database id of the additional test data.
getNewMappedTaxonomyFilter(ilImportMapping $mapping, array $mappedFilter)
getImportDirectoryContainer()
parseXmlFileNames()
Create qti and xml file name.
importQuestionSkillAssignments(ilImportMapping $mapping, ilObjTest $testOBJ, $xmlFile)
Importer class for files.
getId()
get object id public
finalRandomTestTaxonomyProcessing(ilImportMapping $mapping, $oldTstObjId, $newTstObjId, ilObjTest $testOBJ)
importXmlRepresentation($a_entity, $a_id, $a_xml, $a_mapping)
Import XML.
Legacy Content Object Parser.
importRandomQuestionSetConfig(ilObjTest $testOBJ, $xmlFile, $a_mapping)
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
importSkillLevelThresholds(ilImportMapping $mapping, ilAssQuestionSkillAssignmentList $assignmentList, ilObjTest $testOBJ, $xmlFile)
finalProcessing($a_mapping)
Final processing.
Test results import parser.
static saveUsage($a_tax_id, $a_obj_id)
Save Usage.
setOfflineStatus($a_status)
Set offline status.
getInstallId()
Get installation id.
static $finallyProcessedTestsRegistry
registerFailedImports(ilAssQuestionSkillAssignmentImportList $assignmentList)
static _setImportDirectory($a_import_dir=null)
set import directory