diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-03-26 14:24:08 +0000 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2024-03-26 14:24:08 +0000 |
| commit | ffabce68ca9407a11d301497262e7ad2a149f73f (patch) | |
| tree | 94e35e60d194089ba9cf6c0a72dbfa55f13c2278 /app/controllers/course/wiki.php | |
| parent | a51e4b5b9a8f54b520bb2397ee4470cd72c5c18e (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.php | 9 |
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:'), |
