diff --git a/core/Support/helpers/branding.php b/core/Support/helpers/branding.php index cd1b986..05597fd 100644 --- a/core/Support/helpers/branding.php +++ b/core/Support/helpers/branding.php @@ -53,6 +53,35 @@ function currentTheme(): string return $theme; } +/** + * Resolve the theme value to set on the html data-theme attribute. + * + * Returns an empty string when no explicit preference has been set by either + * the user or the tenant — callers should then OMIT data-theme entirely so + * the browser's prefers-color-scheme media query can drive the theme. Use + * this only for the html element. Internal consumers (theme toggle, + * logo URL resolution) keep using currentTheme() / appDefaultTheme() which + * always return a concrete theme string. + */ +function appExplicitTheme(): string +{ + $themes = appThemes(); + + if (allowUserTheme()) { + $userTheme = strtolower(trim((string) ($_SESSION['user']['theme'] ?? ''))); + if ($userTheme !== '' && isset($themes[$userTheme])) { + return $userTheme; + } + } + + $tenantTheme = strtolower(trim((string) ($_SESSION['current_tenant']['default_theme'] ?? ''))); + if ($tenantTheme !== '' && isset($themes[$tenantTheme])) { + return $tenantTheme; + } + + return ''; +} + /** * Resolve active primary color from the current tenant. * diff --git a/i18n/default_de.json b/i18n/default_de.json index 44fd906..43becf7 100644 --- a/i18n/default_de.json +++ b/i18n/default_de.json @@ -587,6 +587,7 @@ "Login provider": "Login-Anbieter", "Login required": "Login erforderlich", "Login status": "Anmeldestatus", + "Login to %s": "Login bei %s", "Login tokens": "Login-Tokens", "Login tokens cleared": "Login-Tokens gelöscht", "Logo": "Logo", diff --git a/i18n/default_en.json b/i18n/default_en.json index fc68ae2..9450ff5 100644 --- a/i18n/default_en.json +++ b/i18n/default_en.json @@ -587,6 +587,7 @@ "Login provider": "Login provider", "Login required": "Login required", "Login status": "Login status", + "Login to %s": "Login to %s", "Login tokens": "Login tokens", "Login tokens cleared": "Login tokens cleared", "Logo": "Logo", diff --git a/pages/auth/forgot(login).phtml b/pages/auth/forgot(login).phtml index 1868d1e..f8dd245 100644 --- a/pages/auth/forgot(login).phtml +++ b/pages/auth/forgot(login).phtml @@ -12,13 +12,10 @@ Buffer::set('title', t('Forgot password')); $errorNoticeId = !empty($errors) ? 'auth-forgot-error-notice' : ''; $authHelpContext = [ 'show_back_to_login' => true, - 'show_support' => true, ]; -$authLogoHref = lurl('login'); ?>
-

diff --git a/pages/auth/login(login).phtml b/pages/auth/login(login).phtml index 07544fb..7c91e52 100644 --- a/pages/auth/login(login).phtml +++ b/pages/auth/login(login).phtml @@ -28,47 +28,29 @@ $selectedTenantLabel = trim((string) ($selectedTenant['description'] ?? '')); if ($selectedTenantLabel === '') { $selectedTenantLabel = t('Select tenant'); } -$selectedTenantAvatarUrl = (string) ($selectedTenant['avatar_url'] ?? ''); -$selectedTenantInitial = strtoupper(substr($selectedTenantLabel, 0, 1)); -if ($selectedTenantInitial === '') { - $selectedTenantInitial = '?'; -} -$canSwitchTenant = count($tenantCandidates) > 1; $errors = is_array($errors ?? null) ? $errors : []; $errorNoticeId = $errors ? 'auth-login-error-notice' : ''; -$loginHeading = t('Login'); -$loginSubheading = t('Login credentials'); -$authHelpContext = ['show_support' => true]; +$authHelpContext = []; if ($stage === 'resolve_email') { + $loginHeading = t('Login'); $authHelpContext = [ 'show_register' => true, - 'show_support' => true, ]; } elseif ($stage === 'choose_tenant') { - $authHelpContext = [ - 'show_support' => true, - ]; + $loginHeading = t('Select tenant'); } else { + $loginHeading = sprintf(t('Login to %s'), $selectedTenantLabel); $authHelpContext = [ 'show_forgot' => !empty($selectedTenantMethods['local']), - 'show_support' => true, ]; } -$authLogoHref = lurl('login'); -if ($tenantHint !== '') { - $authLogoHref .= '?tenant=' . rawurlencode($tenantHint); -} $returnToSanitized = (string) ($returnToSanitized ?? ''); ?> diff --git a/pages/auth/register(login).phtml b/pages/auth/register(login).phtml index 92419d8..bf9ffa1 100644 --- a/pages/auth/register(login).phtml +++ b/pages/auth/register(login).phtml @@ -19,12 +19,9 @@ $errorNoticeId = !empty($error) ? 'auth-register-error-notice' : ''; $passwordHintId = 'auth-register-password-hints'; $authHelpContext = [ 'show_back_to_login' => true, - 'show_support' => true, ]; -$authLogoHref = lurl('login'); ?>