diff --git a/components/ILIAS/Export/classes/ExportHandler/I/Manager/HandlerInterface.php b/components/ILIAS/Export/classes/ExportHandler/I/Manager/HandlerInterface.php index 39bbb04113d8..5115d5f0e290 100644 --- a/components/ILIAS/Export/classes/ExportHandler/I/Manager/HandlerInterface.php +++ b/components/ILIAS/Export/classes/ExportHandler/I/Manager/HandlerInterface.php @@ -27,6 +27,7 @@ use ILIAS\Export\ExportHandler\I\Info\Export\Container\ObjectId\CollectionInterface as ilExportHandlerContainerExportInfoObjectIdCollectionInterface; use ILIAS\Export\ExportHandler\I\Info\Export\HandlerInterface as ilExportHandlerExportInfoInterface; use ILIAS\Export\ExportHandler\I\Repository\Element\HandlerInterface as ilExportHandlerRepositoryElementInterface; +use ilObject; interface HandlerInterface { @@ -46,6 +47,11 @@ public function getExportInfo( int $time_stamp ): ilExportHandlerExportInfoInterface; + public function getExportInfoWithObject( + ilObject $export_object, + int $time_stamp + ): ilExportHandlerExportInfoInterface; + public function getContainerExportInfo( ObjectId $main_entity_object_id, ilExportHandlerContainerExportInfoObjectIdCollectionInterface $object_ids diff --git a/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php b/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php index b7aea448c35a..4a0c110f66f0 100644 --- a/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php +++ b/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php @@ -64,6 +64,23 @@ public function __construct( $this->data_factory_wrapper = $data_factory_wrapper; } + protected function getExportTargetWithObject( + ilObject $export_object + ) { + $obj_id = $export_object->getId(); + $type = $export_object->getType(); + $class = ilImportExportFactory::getExporterClass($type); + $comp = ilImportExportFactory::getComponentForExport($type); + $v = explode(".", ILIAS_VERSION_NUMERIC); + $target_release = $v[0] . "." . $v[1] . ".0"; + return $this->export_handler->target()->handler() + ->withTargetRelease($target_release) + ->withType($type) + ->withObjectIds([$obj_id]) + ->withClassname($class) + ->withComponent($comp); + } + protected function getExportTarget( ObjectId $object_id ): ilExportHandlerTargetInterface { @@ -190,6 +207,14 @@ public function getExportInfo( ->withTarget($this->getExportTarget($object_id), $time_stamp); } + public function getExportInfoWithObject( + ilObject $export_object, + int $time_stamp + ): ilExportHandlerExportInfoInterface { + return $this->export_handler->info()->export()->handler() + ->withTarget($this->getExportTargetWithObject($export_object), $time_stamp); + } + public function getContainerExportInfo( ObjectId $main_entity_object_id, ilExportHandlerContainerExportInfoObjectIdCollectionInterface $object_ids diff --git a/components/ILIAS/Export/classes/class.ilExportGUI.php b/components/ILIAS/Export/classes/class.ilExportGUI.php index 370d300d9d37..9a1751c898fe 100755 --- a/components/ILIAS/Export/classes/class.ilExportGUI.php +++ b/components/ILIAS/Export/classes/class.ilExportGUI.php @@ -267,8 +267,8 @@ final protected function saveItemSelection(): void final protected function createXMLExport() { $manager = $this->export_handler->manager()->handler(); - $export_info = $manager->getExportInfo( - $this->data_factory->objId($this->obj->getId()), + $export_info = $manager->getExportInfoWithObject( + $this->obj, time() ); $element = $manager->createExport( @@ -318,8 +318,8 @@ final protected function createXMLContainerExport() } $manager = $this->export_handler->manager()->handler(); if (count($ref_ids_all) === 1) { - $export_info = $manager->getExportInfo( - $this->data_factory->objId($this->obj->getId()), + $export_info = $manager->getExportInfoWithObject( + $this->obj, time() ); $element = $manager->createExport(