19declare(strict_types=1);
30 public function init(): void
32 $this->tracking_factory =
new TrackingFactory();
44 if (strcmp($a_entity,
"lpsettings") === 0) {
58 $new_id = $this->getNewId($a_id, $a_mapping);
59 }
catch (TrackingExportException
$e) {
62 $export_factory = $this->tracking_factory->export();
63 $db_factory = $this->tracking_factory->db();
64 $reader = $export_factory->xml()->reader();
65 $info = $export_factory->info();
66 $info = $reader->readLPSettings($a_xml,
$info);
67 $info = $reader->readLPCollection($a_xml,
$info);
68 $info = $reader->readLPStatusCollection($a_xml,
$info);
69 $info = $this->applyMappings($new_id, $a_mapping,
$info);
70 $db_factory->lpSettings()->repository()->writeLPSettings(
$info->getLPSettings());
71 $db_factory->lpCollection()->repository()->writeLPCollection(
$info->getLPCollection());
72 foreach ($reader->readAdditionalContentRootsIdentifierMap($a_xml) as $lp_status_id => $xml_root) {
73 $info->getLPStatusCollection()->getElementByStatusId((
string) $lp_status_id)
74 ->importCustomLPSettingsExportXML(
89 $new_id = $a_mapping->getMapping(
"components/ILIAS/Tracking",
"obj",
$id);
90 if (is_null($new_id)) {
91 throw new TrackingExportException(sprintf(
"Object id (%s) during tracking import not found in mapping",
$id));
101 $lp_collection =
$info->getLPCollection();
103 foreach ($lp_collection as $collection) {
104 $new_item_id = $mapping->
getMapping(
"components/ILIAS/Container",
"refs", (
string) $collection->getItemId());
105 if (is_null($new_item_id)) {
106 # Element is not exported, the element is ignored.
109 $new_item_id = (
int) $new_item_id;
110 $elements[] = $collection
111 ->withItemId($new_item_id);
113 $new_lp_collection = $this->tracking_factory->db()->lpCollection()->element()->lpCollection(...$elements)
114 ->withObjectId($new_id)
115 ->withFixedNumObligatory();
117 ->withLPSettings(
$info->getLPSettings()->withObjectId($new_id))
118 ->withLPCollection($new_lp_collection);
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
getMapping(string $a_comp, string $a_entity, string $a_old_id)
importLPSettings(string $a_id, string $a_xml, ilImportMapping $a_mapping)
getNewId(string $id, ilImportMapping $a_mapping)
importXmlRepresentation(string $a_entity, string $a_id, string $a_xml, ilImportMapping $a_mapping)
applyMappings(int $new_id, ilImportMapping $mapping, InfoInterface $info)
TrackingFactoryInterface $tracking_factory
if(!file_exists('../ilias.ini.php'))