diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-03-26 13:47:37 +0000 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2024-03-26 13:47:37 +0000 |
| commit | a51e4b5b9a8f54b520bb2397ee4470cd72c5c18e (patch) | |
| tree | 2718b5adb91b99e6eac29857312e28b64351aab7 /lib | |
| parent | cc91efd5c70cbf550b1dad143b682c4c1ca636e3 (diff) | |
Resolve "Wiki: Hierarchie kaputt bei Seiten ohne parent"
Closes #3904
Merge request studip/studip!2760
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/modules/CoreWiki.class.php | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/modules/CoreWiki.class.php b/lib/modules/CoreWiki.class.php index e82fd65..a447451 100644 --- a/lib/modules/CoreWiki.class.php +++ b/lib/modules/CoreWiki.class.php @@ -181,23 +181,22 @@ class CoreWiki extends CorePlugin implements StudipModule * Generates a page hierarchy for table of contents/breadcrumbs. * @return TOCItem */ - public static function getTOC($startPage, $active_title = null): TOCItem + public static function getTOC($page, $first = true): TOCItem { $root = new TOCItem( - ($startPage && ($startPage->isNew() || $startPage->name === 'WikiWikiWeb')) + ($page && ($page->isNew() || $page->name === 'WikiWikiWeb')) ? _('Wiki-Startseite') - : $startPage->name + : $page->name ); - $root->setURL(URLHelper::getURL('dispatch.php/course/wiki/page/'.$startPage->id)); - if ($startPage->name == 'WikiWikiWeb' || $startPage->id == CourseConfig::get($startPage->range_id)->WIKI_STARTPAGE_ID) { + $root->setURL(URLHelper::getURL('dispatch.php/course/wiki/page/'.$page->id)); + if ($page->name == 'WikiWikiWeb' || $page->id == CourseConfig::get($page->range_id)->WIKI_STARTPAGE_ID) { $root->setIcon(Icon::create('wiki')); } - $root->setActive($root->getTitle() === $active_title); + $root->setActive($first); - foreach ($startPage->children as $child) { - $item = self::getTOC($child, $active_title); - $item->setActive($item->getTitle() === $active_title); - $root->addChild($item); + if ($page->parent) { + $parent = self::getTOC($page->parent, false); + $root->setParent($parent); } return $root; |
