diff --git a/actions/admin/settings/100.panel.php b/actions/admin/settings/100.panel.php index e73c5183..88e785d6 100644 --- a/actions/admin/settings/100.panel.php +++ b/actions/admin/settings/100.panel.php @@ -296,6 +296,22 @@ return array( 'default' => '', 'save_method' => 'storeSettingField' ), + 'panel_logo_overridetheme' => array( + 'label' => $lng['panel']['logo_overridetheme'], + 'settinggroup' => 'panel', + 'varname' => 'logo_overridetheme', + 'type' => 'bool', + 'default' => false, + 'save_method' => 'storeSettingField' + ), + 'panel_logo_overridecustom' => array( + 'label' => $lng['panel']['logo_overridecustom'], + 'settinggroup' => 'panel', + 'varname' => 'logo_overridecustom', + 'type' => 'bool', + 'default' => false, + 'save_method' => 'storeSettingField' + ), 'panel_logo_image_header' => array( 'label' => $lng['serversettings']['logo_image_header'], 'settinggroup' => 'panel', diff --git a/install/froxlor.sql b/install/froxlor.sql index 5df8a243..80260d1d 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -717,8 +717,10 @@ opcache.interned_strings_buffer'), ('panel', 'privacy_url', ''), ('panel', 'logo_image_header', ''), ('panel', 'logo_image_login', ''), + ('panel', 'logo_overridetheme', '0'), + ('panel', 'logo_overridecustom', '0'), ('panel', 'version', '0.10.27'), - ('panel', 'db_version', '202107070'); + ('panel', 'db_version', '202107200'); DROP TABLE IF EXISTS `panel_tasks`; diff --git a/install/updates/froxlor/0.10/update_0.10.inc.php b/install/updates/froxlor/0.10/update_0.10.inc.php index f9618aa5..049569c3 100644 --- a/install/updates/froxlor/0.10/update_0.10.inc.php +++ b/install/updates/froxlor/0.10/update_0.10.inc.php @@ -867,3 +867,11 @@ if (\Froxlor\Froxlor::isFroxlorVersion('0.10.26')) { showUpdateStep("Updating from 0.10.26 to 0.10.27", false); \Froxlor\Froxlor::updateToVersion('0.10.27'); } + +if (\Froxlor\Froxlor::isDatabaseVersion('202107070')) { + showUpdateStep("Adding settings to overwrite theme- or custom theme-logo with the new logo settings", true); + Settings::AddNew("panel.logo_overridetheme", '0'); + Settings::AddNew("panel.logo_overridecustom", '0'); + lastStepStatus(0); + \Froxlor\Froxlor::updateToDbVersion('202107200'); +} diff --git a/lib/Froxlor/Froxlor.php b/lib/Froxlor/Froxlor.php index 637b0553..240935aa 100644 --- a/lib/Froxlor/Froxlor.php +++ b/lib/Froxlor/Froxlor.php @@ -10,7 +10,7 @@ final class Froxlor const VERSION = '0.10.27'; // Database version (YYYYMMDDC where C is a daily counter) - const DBVERSION = '202107070'; + const DBVERSION = '202107200'; // Distribution branding-tag (used for Debian etc.) const BRANDING = ''; diff --git a/lib/init.php b/lib/init.php index f34565c1..7a6d8b44 100644 --- a/lib/init.php +++ b/lib/init.php @@ -380,8 +380,24 @@ if (! array_key_exists('variants', $_themeoptions) || ! array_key_exists($themev // check for custom header-graphic $hl_path = 'templates/' . $theme . '/assets/img'; -$header_logo = Settings::Get('panel.logo_image_header') ?: $hl_path . '/logo.png'; -$header_logo_login = Settings::Get('panel.logo_image_login') ?: $hl_path . '/logo.png'; + +// default is theme-image +$header_logo = $hl_path . '/logo.png'; +$header_logo_login = $hl_path . '/logo.png'; + +if (Settings::Get('panel.logo_overridetheme') == 1 || Settings::Get('panel.logo_overridecustom') == 1) { + // logo settings shall overwrite theme logo and possible custom logo + $header_logo = Settings::Get('panel.logo_image_header') ?: $header_logo; + $header_logo_login = Settings::Get('panel.logo_image_login') ?: $header_logo_login; +} +if (Settings::Get('panel.logo_overridecustom') == 0 && file_exists($hl_path . '/logo_custom.png')) { + // custom theme image (logo_custom.png) is not being overwritten by logo_image_* setting + $header_logo = $hl_path . '/logo_custom.png'; + $header_logo_login = $hl_path . '/logo_custom.png'; + if (file_exists($hl_path . '/logo_custom_login.png')) { + $header_logo_login = $hl_path . '/logo_custom_login.png'; + } +} /** * Redirects to index.php (login page) if no session exists diff --git a/lng/english.lng.php b/lng/english.lng.php index 867b9267..49867ef4 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -2123,3 +2123,7 @@ $lng['serversettings']['logo_image_header']['description'] = 'Upload your own lo $lng['serversettings']['logo_image_login']['title'] = 'Logo Image (Login)'; $lng['serversettings']['logo_image_login']['description'] = 'Upload your own logo image to be shown during login'; $lng['panel']['image_field_delete'] = 'Delete the existing current image'; +$lng['serversettings']['logo_overridetheme']['title'] = 'Overwrites logo defined in theme by "Logo Image" (Header and Login, see below)'; +$lng['serversettings']['logo_overridetheme']['description'] = 'This needs to be set to "true" if you intend to use your uploaded logo; alternatively you can still use the theme-based "logo_custom.png" and "logo_custom_login.png" possibility.'; +$lng['serversettings']['logo_overridecustom']['title'] = 'Overwrite custom logo (logo_custom.png and logo_custom_login.png) defined in theme by "Logo Image" (Header and Login, see below)'; +$lng['serversettings']['logo_overridecustom']['description'] = 'Set this to "true" if you want to ignore theme-specific custom logos for header and login and use "Logo Image"'; diff --git a/lng/german.lng.php b/lng/german.lng.php index 662622b0..02335bb5 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1769,3 +1769,7 @@ $lng['serversettings']['logo_image_header']['description'] = 'Das hochgeladene B $lng['serversettings']['logo_image_login']['title'] = 'Logo Bild (Login)'; $lng['serversettings']['logo_image_login']['description'] = 'Das hochgeladene Bild wird als Logo während des Logins angezeigt'; $lng['panel']['image_field_delete'] = 'Das momentan vorhandene Bild löschen'; +$lng['serversettings']['logo_overridetheme']['title'] = 'Überschreibe Theme-Logo mit "Logo Bild" (Header und Login, siehe unten)'; +$lng['serversettings']['logo_overridetheme']['description'] = 'Ist die Nutzung eines hochgeladenen Logos gewünscht, muss diese Einstellung auf "Ja" gesetzt werden. Alternativ kann weiterhin das Theme-basierte Überschreiben via "logo_custom.png" und "logo_custom_login.png" genutzt werden.'; +$lng['serversettings']['logo_overridecustom']['title'] = 'Überschreibe benutzerdefinierte Theme-Logos (logo_custom.png und logo_custom_login.png) mit "Logo Bold" (Header und Login, siehe unten)'; +$lng['serversettings']['logo_overridecustom']['description'] = 'Ist diese Einstellung aktiv, werden benutzerdefinierte Logos im Theme-Ordner mit dem "Logo Bild" ersetzt';