From 9b19d1b4c1f0eb3001fa4dbade7c0128bc4147f4 Mon Sep 17 00:00:00 2001 From: Finn Schneider Date: Thu, 9 Oct 2025 13:51:33 +0000 Subject: Resolve "Wiki: Erste Seite die angelegt wird muss Wiki-Startseite sein" Closes #5271 Merge request studip/studip!4519 --- app/controllers/course/wiki.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php index cf02e04..cd73b99 100644 --- a/app/controllers/course/wiki.php +++ b/app/controllers/course/wiki.php @@ -950,7 +950,6 @@ class Course_WikiController extends AuthenticatedController $page = new WikiPage(); $page->parent_id = $parent_id ?? $this->range->getConfiguration()->WIKI_STARTPAGE_ID; $parent_id = $parent_id ?? $this->range->getConfiguration()->WIKI_STARTPAGE_ID; - PageLayout::setTitle(_('Neue Wikiseite erstellen')); $options = [ '' => _('Keine') ]; @@ -961,6 +960,12 @@ class Course_WikiController extends AuthenticatedController 'range_id = ? ORDER BY name', [$this->range->id] ); + $is_start_page = count($options) <= 1; + if ($is_start_page) { + PageLayout::setTitle(_('Wiki-Startseite erstellen')); + } else { + PageLayout::setTitle(_('Neue Wikiseite erstellen')); + } $this->form = \Studip\Forms\Form::fromSORM( $page, [ @@ -975,8 +980,12 @@ class Course_WikiController extends AuthenticatedController 'mapper' => function () { return User::findCurrent()->id; } ], 'name' => [ - 'required' => true, + 'required' => !$is_start_page, 'label' => _('Name der Seite'), + 'type' => $is_start_page ? 'no' : 'text', + 'mapper' => function ($value) use ($is_start_page) { + return $is_start_page ? 'Wiki-Startseite' : $value; + }, 'validate' => function ($value, $input) { $name_count = WikiPage::countBySql('`name` = :name AND `range_id` = :range_id', [ 'name' => $value, -- cgit v1.0