diff --git a/index.php b/index.php index c28af72..a928661 100644 --- a/index.php +++ b/index.php @@ -257,6 +257,32 @@ if (function_exists('getSiteConfig')) { +// Editierbare Textbausteine (Admin-Panel) +$heroWelcomeText = $settingsManager->get('content.hero_welcome_de'); +if ($heroWelcomeText === null || $heroWelcomeText === '') { + $heroWelcomeText = $siteConfig['welcomeDe']; +} + +$heroRegionText = $settingsManager->get('content.hero_region_text_de'); +if ($heroRegionText === null || $heroRegionText === '') { + $heroRegionText = 'Erleben Sie faszinierende Ausblicke der Züricher Region - in Echtzeit!'; +} + +$localFlagAltText = $settingsManager->get('content.local_flag_alt_de'); +if ($localFlagAltText === null || $localFlagAltText === '') { + $localFlagAltText = 'Ortsflagge'; +} + +$donationCalloutText = $settingsManager->get('content.donation_callout_de'); +if ($donationCalloutText === null || $donationCalloutText === '') { + $donationCalloutText = "Gefällt dir die Livecam? Unterstütze das Projekt –\njeder Franken zählt und hilft die Betriebskosten\nzu decken. So kannst du auch weiterhin\nFotos und Videos kostenlos nutzen."; +} + +$twintSupportText = $settingsManager->get('content.twint_support_text_de'); +if ($twintSupportText === null || $twintSupportText === '') { + $twintSupportText = 'Unterstütze die Aurora Livecam mit deiner Spende. Du hilfst dabei, Kamera, Server, Starlink-Verbindung und die 100 % autarke Stromversorgung mit Solarenergie und EcoFlow-Speichern zu finanzieren. So bleibt das Projekt nachhaltig, unabhängig und für alle frei zugänglich.'; +} + session_start(); error_reporting(E_ALL); ini_set('display_errors', 1); @@ -1368,6 +1394,41 @@ class AdminManager { $output .= ''; $output .= ''; $output .= ''; + + $output .= '
-
+
- Erleben Sie faszinierende Ausblicke der Züricher Region - in Echtzeit! +
-
- Gefällt dir die Livecam? Unterstütze das Projekt –
jeder Franken zählt und hilft die Betriebskosten
zu decken. So kannst du auch weiterhin
Fotos und Videos kostenlos nutzen.
+
+
@@ -3155,13 +3217,14 @@ body.theme-neo footer {- Unterstütze die Aurora Livecam mit deiner Spende. Du hilfst dabei, Kamera, Server, Starlink-Verbindung und die 100 % autarke Stromversorgung mit Solarenergie und EcoFlow-Speichern zu finanzieren. So bleibt das Projekt nachhaltig, unabhängig und für alle frei zugänglich. +
@@ -3525,8 +3588,8 @@ body.theme-neo footer {
-
- Gefällt dir die Livecam? Unterstütze das Projekt –
jeder Franken zählt und hilft die Betriebskosten
zu decken. So kannst du auch weiterhin
Fotos und Videos kostenlos nutzen.
+
+
@@ -4202,6 +4265,47 @@ const AdminSettings = { case 'content.max_guestbook_entries': this.showNotification('Max Einträge: ' + value + ' (Reload empfohlen)', 'success'); break; + case 'content.hero_welcome_de': + const heroWelcome = document.getElementById('hero-welcome-text'); + if (heroWelcome) { + const nextValue = value && String(value).trim() !== '' ? value : ''; + heroWelcome.textContent = nextValue; + heroWelcome.setAttribute('data-de', nextValue); + } + break; + case 'content.hero_region_text_de': + const heroRegionText = document.getElementById('hero-region-text'); + if (heroRegionText) { + const fallbackRegion = 'Erleben Sie faszinierende Ausblicke der Züricher Region - in Echtzeit!'; + const nextValue = value && String(value).trim() !== '' ? value : fallbackRegion; + heroRegionText.textContent = nextValue; + heroRegionText.setAttribute('data-de', nextValue); + } + break; + case 'content.local_flag_alt_de': + const localFlagImage = document.getElementById('local-flag-image'); + if (localFlagImage) { + const nextValue = value && String(value).trim() !== '' ? value : 'Ortsflagge'; + localFlagImage.setAttribute('alt', nextValue); + } + break; + case 'content.donation_callout_de': + const donationEls = document.querySelectorAll('.donation-callout-text'); + const donationFallback = 'Gefällt dir die Livecam? Unterstütze das Projekt –\njeder Franken zählt und hilft die Betriebskosten\nzu decken. So kannst du auch weiterhin\nFotos und Videos kostenlos nutzen.'; + const donationText = value && String(value).trim() !== '' ? value : donationFallback; + donationEls.forEach(el => { + el.innerHTML = donationText.replace(/\n/g, '