Skip to content
Snippets Groups Projects
Commit a51e4b5b authored by Philipp Schüttlöffel's avatar Philipp Schüttlöffel Committed by Rasmus Fuhse
Browse files

Resolve "Wiki: Hierarchie kaputt bei Seiten ohne parent"

Closes #3904

Merge request studip/studip!2760
parent cc91efd5
No related branches found
No related tags found
No related merge requests found
...@@ -116,7 +116,7 @@ class Course_WikiController extends AuthenticatedController ...@@ -116,7 +116,7 @@ class Course_WikiController extends AuthenticatedController
$startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID); $startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
$this->contentbar = ContentBar::get() $this->contentbar = ContentBar::get()
->setTOC(CoreWiki::getTOC($this->page->parent && $startPage ? $startPage : $this->page, $this->page['name'])) ->setTOC(CoreWiki::getTOC($this->page))
->setIcon(Icon::create('wiki')) ->setIcon(Icon::create('wiki'))
->setInfo(sprintf( ->setInfo(sprintf(
_('Version %1$s, geändert von %2$s <br> am %3$s'), _('Version %1$s, geändert von %2$s <br> am %3$s'),
...@@ -418,7 +418,7 @@ class Course_WikiController extends AuthenticatedController ...@@ -418,7 +418,7 @@ class Course_WikiController extends AuthenticatedController
); );
$startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID); $startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
$this->contentbar = ContentBar::get() $this->contentbar = ContentBar::get()
->setTOC(CoreWiki::getTOC($startPage, $page['name'])) ->setTOC(CoreWiki::getTOC($page))
->setIcon(Icon::create('wiki')) ->setIcon(Icon::create('wiki'))
->setInfo(_('Zuletzt gespeichert') .': '. '<studip-date-time :timestamp="Math.floor(lastSaveDate / 1000)" :relative="true"></studip-date-time>'); ->setInfo(_('Zuletzt gespeichert') .': '. '<studip-date-time :timestamp="Math.floor(lastSaveDate / 1000)" :relative="true"></studip-date-time>');
} }
...@@ -609,7 +609,7 @@ class Course_WikiController extends AuthenticatedController ...@@ -609,7 +609,7 @@ class Course_WikiController extends AuthenticatedController
Sidebar::Get()->addWidget($this->getViewsWidget($version->page, 'history')); Sidebar::Get()->addWidget($this->getViewsWidget($version->page, 'history'));
$startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID); $startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
$this->contentbar = ContentBar::get() $this->contentbar = ContentBar::get()
->setTOC(CoreWiki::getTOC($startPage, $version->page['name'])) ->setTOC(CoreWiki::getTOC($version->page))
->setIcon(Icon::create('wiki')) ->setIcon(Icon::create('wiki'))
->setInfo(sprintf( ->setInfo(sprintf(
_('Version %1$s vom %2$s'), _('Version %1$s vom %2$s'),
......
...@@ -181,23 +181,22 @@ class CoreWiki extends CorePlugin implements StudipModule ...@@ -181,23 +181,22 @@ class CoreWiki extends CorePlugin implements StudipModule
* Generates a page hierarchy for table of contents/breadcrumbs. * Generates a page hierarchy for table of contents/breadcrumbs.
* @return TOCItem * @return TOCItem
*/ */
public static function getTOC($startPage, $active_title = null): TOCItem public static function getTOC($page, $first = true): TOCItem
{ {
$root = new TOCItem( $root = new TOCItem(
($startPage && ($startPage->isNew() || $startPage->name === 'WikiWikiWeb')) ($page && ($page->isNew() || $page->name === 'WikiWikiWeb'))
? _('Wiki-Startseite') ? _('Wiki-Startseite')
: $startPage->name : $page->name
); );
$root->setURL(URLHelper::getURL('dispatch.php/course/wiki/page/'.$startPage->id)); $root->setURL(URLHelper::getURL('dispatch.php/course/wiki/page/'.$page->id));
if ($startPage->name == 'WikiWikiWeb' || $startPage->id == CourseConfig::get($startPage->range_id)->WIKI_STARTPAGE_ID) { if ($page->name == 'WikiWikiWeb' || $page->id == CourseConfig::get($page->range_id)->WIKI_STARTPAGE_ID) {
$root->setIcon(Icon::create('wiki')); $root->setIcon(Icon::create('wiki'));
} }
$root->setActive($root->getTitle() === $active_title); $root->setActive($first);
foreach ($startPage->children as $child) { if ($page->parent) {
$item = self::getTOC($child, $active_title); $parent = self::getTOC($page->parent, false);
$item->setActive($item->getTitle() === $active_title); $root->setParent($parent);
$root->addChild($item);
} }
return $root; return $root;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment