From 77fd409b22ae074ad37b8c3559be1ae986b204dc Mon Sep 17 00:00:00 2001 From: Christoph Ludolf Date: Mon, 27 Jul 2026 16:20:24 +0200 Subject: [PATCH 1/2] File: adjust export paths to support container object export. This is required if files are part of the container object. This is for example is the case if the ilPCFileList is used in the page editor. --- components/ILIAS/File/classes/class.ilFileExporter.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/components/ILIAS/File/classes/class.ilFileExporter.php b/components/ILIAS/File/classes/class.ilFileExporter.php index 267492fd7bf0..a0dabd709652 100755 --- a/components/ILIAS/File/classes/class.ilFileExporter.php +++ b/components/ILIAS/File/classes/class.ilFileExporter.php @@ -88,11 +88,15 @@ public function getXmlRepresentation(string $a_entity, string $a_schema_version, protected function prepareExportDirectories( ilFileXMLWriter $writer ): void { - $path = str_replace('\\', '/', $this->exp->getExportDirInContainer()); + $path = str_replace('\\', '/', $this->exp->getPathToComponentExpDirInContainer()); $segments = explode('/', $path); array_shift($segments); - $target_dir_relative = implode('/', $segments) . '/expDir_1'; - $target_dir_absolute = rtrim($this->getAbsoluteExportDirectory(), '/') . '/' . $target_dir_relative; + $target_dir_relative = implode('/', $segments); + if ($this->exp->isContainerExport()) { + $target_dir_absolute = rtrim($this->getAbsoluteExportDirectory(), '/') . '/' . $this->exp->getPathToComponentExpDirInContainerWithLeadingSetNumber(); + } else { + $target_dir_absolute = rtrim($this->getAbsoluteExportDirectory(), '/') . '/' . $target_dir_relative; + } ilFileUtils::makeDirParents($target_dir_absolute); $writer->setFileTargetDirectories( $target_dir_relative, From ed8a652b78c097bbde58785517f74b5f9dcd0b90 Mon Sep 17 00:00:00 2001 From: Christoph Ludolf Date: Mon, 27 Jul 2026 16:24:06 +0200 Subject: [PATCH 2/2] Export: Adjust legacy file collection paths. This is required if files are part of the container object. This is for example is the case if the ilPCFileList is used in the page editor. --- .../ILIAS/Export/classes/ExportHandler/Manager/Handler.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php b/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php index 8e416e54c445..431ec70f23eb 100644 --- a/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php +++ b/components/ILIAS/Export/classes/ExportHandler/Manager/Handler.php @@ -193,9 +193,10 @@ public function createExport( # write files from legacy export run dir to irss # tmp solution, remove later if no longer needed $writer = $this->export_handler->consumer()->handler()->exportWriter($element); + $is_container_export = $element->getIRSS()->isContainerExport(); $writer->writeDirectoryRecursive( $export_info->getLegacyExportRunDir(), - $export_info->getExportFolderName() + ($is_container_export) ? '' : $export_info->getExportFolderName() ); # delete legacy export run dir