From cd04aafb62236cb8c578df37791f4a9bcb60e409 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Tue, 5 Nov 2024 07:59:00 +0000
Subject: [PATCH] fix default for Request::i18n() if only one language is
 configured, fixes #4811

Closes #4811

Merge request studip/studip!3604
---
 lib/classes/Request.php | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/classes/Request.php b/lib/classes/Request.php
index 4c8697e06fe..1bb10798d82 100644
--- a/lib/classes/Request.php
+++ b/lib/classes/Request.php
@@ -191,18 +191,18 @@ class Request implements ArrayAccess, IteratorAggregate
     /**
      * Return the value of the selected query parameter as an I18NString.
      *
-     * @param string          $param   parameter name
-     * @param I18NString|null $default default value if parameter is not set
-     * @param callable|null   $op      Operation to perform on each text string
+     * @param string                 $param   parameter name
+     * @param I18NString|string|null $default default value if parameter is not set
+     * @param callable|null          $op      Operation to perform on each text string
      *
      * @return I18NString  parameter value as string (if set), else NULL
      */
-    public static function i18n(string $param, ?I18NString $default = NULL, Callable $op = null)
+    public static function i18n(string $param, $default = null, Callable $op = null)
     {
-        $value = self::get($param, $default ? $default->original() : null);
+        $value = self::get($param, $default instanceof I18NString ? $default->original() : $default);
 
         if (isset($value)) {
-            $lang = self::getArray($param . '_i18n') ?: ($default ? $default->toArray() : []);
+            $lang = self::getArray($param . '_i18n') ?: ($default instanceof I18NString ? $default->toArray() : []);
 
             if ($op) {
                 $value = $op($value);
-- 
GitLab