19declare(strict_types=1);
38 $local_dic = QuestionPoolDIC::dic();
39 $this->session = $local_dic[
'exportimport.session'];
40 $this->importer = $local_dic[
'exportimport.importer'];
43 public function init(): void
45 $this->legacy_importer->setImport($this->
getImport());
47 $this->legacy_importer->init();
57 $session = $this->session->getSession();
59 $this->legacy_importer->setInstallId($this->
getInstallId());
60 $this->legacy_importer->setInstallUrl($this->
getInstallUrl());
63 $this->legacy_importer->importXmlRepresentation($a_entity, $a_id, $a_xml, $a_mapping);
67 $result = $this->importer->import(
68 XmlDeserializer::fromString($a_xml),
79 $session = $this->session->getSession();
80 if ($session->isLegacyImport()) {
81 $this->legacy_importer->finalProcessing($a_mapping);
85 $this->importer->finalize($a_mapping);
86 $this->finalizeTaxonomyUsage($a_mapping);
91 $qpl_mappings = $a_mapping->
getMappingsOfEntity(
'components/ILIAS/TestQuestionPool',
'qpl');
93 foreach ($qpl_mappings as $old => $new) {
94 if ($old ===
'new_id' || (
int) $old <= 0) {
99 'components/ILIAS/Taxonomy',
104 if ($new_tax_ids ===
null) {
108 $tax_ids = explode(
':', $new_tax_ids);
109 foreach ($tax_ids as $tid) {
Persists the import stage index and session across HTTP requests using \ilSession.
setSession(ImportSession $session)
Orchestrates denormalization and persistence of a question pool import.
getMapping(string $a_comp, string $a_entity, string $a_old_id)
getMappingsOfEntity(string $a_comp, string $a_entity)
static saveUsage(int $a_tax_id, int $a_obj_id)
finalProcessing(ilImportMapping $a_mapping)
readonly QuestionPoolImporter $importer
readonly ilTestQuestionPoolLegacyImporter $legacy_importer
importXmlRepresentation(string $a_entity, string $a_id, string $a_xml, ilImportMapping $a_mapping)
readonly ImportSessionRepository $session
finalizeTaxonomyUsage(ilImportMapping $a_mapping)
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc