ILIAS  release_8 Revision v8.24
class.ilForumImporter.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
27{
28 protected \ILIAS\Style\Content\DomainService $content_style_domain;
29
30 public function init(): void
31 {
32 global $DIC;
33 $this->content_style_domain = $DIC
34 ->contentStyle()
35 ->domain();
36 }
37
38 public function importXmlRepresentation(string $a_entity, string $a_id, string $a_xml, ilImportMapping $a_mapping): void
39 {
40 if ($new_id = $a_mapping->getMapping('Services/Container', 'objs', $a_id)) {
41 $newObj = ilObjectFactory::getInstanceByObjId((int) $new_id, false);
42 } else {
43 $newObj = new ilObjForum();
44 $newObj->setType('frm');
45 $newObj->create();
46 }
47
49 $parser = new ilForumXMLParser($newObj, $a_xml, $a_mapping);
50 $parser->setImportDirectory($this->getImportDirectory());
51 $parser->setImportInstallId($this->getInstallId());
52 $parser->setSchemaVersion($this->getSchemaVersion());
53 $parser->startParsing();
54
55 $a_mapping->addMapping('Modules/Forum', 'frm', $a_id, (string) $newObj->getId());
56 }
57
58 public function finalProcessing(ilImportMapping $a_mapping): void
59 {
60 parent::finalProcessing($a_mapping);
61
62 $copaMap = $a_mapping->getMappingsOfEntity('Services/COPage', 'pg');
63 foreach ($copaMap as $oldCopaId => $newCopaId) {
64 $newCopaId = (int) substr($newCopaId, strlen(self::OBJ_TYPE) + 1);
65
66 ilForumPage::_writeParentId(self::OBJ_TYPE, $newCopaId, $newCopaId);
67 }
68
69 $styleMapping = $a_mapping->getMappingsOfEntity('Modules/Forum', 'style');
70 foreach ($styleMapping as $newForumId => $oldStyleId) {
71 $newStyleId = (int) $a_mapping->getMapping('Services/Style', 'sty', $oldStyleId);
72 if ($newForumId > 0 && $newStyleId > 0) {
73 $frm = ilObjectFactory::getInstanceByObjId((int) $newForumId, false);
74 if (!($frm instanceof ilObjForum)) {
75 continue;
76 }
77 $this->content_style_domain
78 ->styleForObjId($newForumId)
79 ->updateStyleId($newStyleId);
80 }
81 }
82 }
83}
Importer class for forums.
finalProcessing(ilImportMapping $a_mapping)
ILIAS Style Content DomainService $content_style_domain
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addMapping(string $a_comp, string $a_entity, string $a_old_id, string $a_new_id)
getMapping(string $a_comp, string $a_entity, string $a_old_id)
getMappingsOfEntity(string $a_comp, string $a_entity)
Class ilObjForum.
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
static _writeParentId(string $a_parent_type, int $a_pg_id, int $a_par_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
importXmlRepresentation(string $a_entity, string $a_id, string $a_xml, ilImportMapping $a_mapping)
global $DIC
Definition: feed.php:28