aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-03-26 13:47:37 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2024-03-26 13:47:37 +0000
commita51e4b5b9a8f54b520bb2397ee4470cd72c5c18e (patch)
tree2718b5adb91b99e6eac29857312e28b64351aab7 /lib
parentcc91efd5c70cbf550b1dad143b682c4c1ca636e3 (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.php19
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;