aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/course/wiki.php
diff options
context:
space:
mode:
authorPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-03-26 14:24:08 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2024-03-26 14:24:08 +0000
commitffabce68ca9407a11d301497262e7ad2a149f73f (patch)
tree94e35e60d194089ba9cf6c0a72dbfa55f13c2278 /app/controllers/course/wiki.php
parenta51e4b5b9a8f54b520bb2397ee4470cd72c5c18e (diff)
Resolve "Wiki: Übergeordnete Seite im Inhaltsverzeichnis geht bei Import verloren"
Closes #3900 Merge request studip/studip!2762
Diffstat (limited to 'app/controllers/course/wiki.php')
-rw-r--r--app/controllers/course/wiki.php9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php
index 6393d1c..421617c 100644
--- a/app/controllers/course/wiki.php
+++ b/app/controllers/course/wiki.php
@@ -1062,6 +1062,7 @@ class Course_WikiController extends AuthenticatedController
}
$errors = [];
+ $new_ids = [];
foreach ($selected_wiki_pages as $selected_page) {
if ($selected_page->isReadable()) {
$count = WikiPage::countBySql(
@@ -1074,6 +1075,7 @@ class Course_WikiController extends AuthenticatedController
if ($count === 0) {
$new_page = WikiPage::build([
'range_id' => $this->range->id,
+ 'parent_id'=> null,
'user_id' => $selected_page->user_id,
'name' => $selected_page->name,
'content' => $selected_page->content,
@@ -1085,9 +1087,16 @@ class Course_WikiController extends AuthenticatedController
htmlReady($new_page->name)
);
}
+ $new_ids[$selected_page->id] = $new_page->id;
}
}
}
+ foreach ($new_ids as $old_page_id => $new_page_id) {
+ $old_page = WikiPage::find($old_page_id);
+ $new_page = WikiPage::find($new_page_id);
+ $new_page->parent_id = $new_ids[$old_page->parent_id] ?? null;
+ $new_page->store();
+ }
if ($errors) {
PageLayout::postError(
_('Die folgenden Fehler traten beim Import auf:'),