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
$startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
$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'))
->setInfo(sprintf(
_('Version %1$s, geändert von %2$s <br> am %3$s'),
......@@ -418,7 +418,7 @@ class Course_WikiController extends AuthenticatedController
);
$startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
$this->contentbar = ContentBar::get()
->setTOC(CoreWiki::getTOC($startPage, $page['name']))
->setTOC(CoreWiki::getTOC($page))
->setIcon(Icon::create('wiki'))
->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
Sidebar::Get()->addWidget($this->getViewsWidget($version->page, 'history'));
$startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
$this->contentbar = ContentBar::get()
->setTOC(CoreWiki::getTOC($startPage, $version->page['name']))
->setTOC(CoreWiki::getTOC($version->page))
->setIcon(Icon::create('wiki'))
->setInfo(sprintf(
_('Version %1$s vom %2$s'),
......
......@@ -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;
......
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