Add multilingual support (DE default, EN under /en/)

This commit is contained in:
chriz committed 2026-10-23 13:06:56 +02:00
1 parent 01ea3bd07a
commit 1e33c525f1
21 files changed
+855 -443

No files matched your search

+122 -69
View File
@@ -3,8 +3,12 @@
/* @var string $content */
/* @var array $config */
/* @var Session $session */
/* @var string $lang */
$titles = [
$currentLang = isset($lang) ? $lang : Helper::getLang();
$isEn = ($currentLang === 'en');
$titlesDe = [
'main' => 'Dialysezentrum Berlin-Mahlsdorf | Praxis für Nephrologie & Dialyse',
'leistungen' => 'Leistungen & Schwerpunkte | Dialysezentrum Berlin-Mahlsdorf',
'praxis' => 'Praxisausstattung & Öffnungszeiten | Dialysezentrum Berlin-Mahlsdorf',
@@ -17,7 +21,20 @@ $titles = [
'404' => 'Seite nicht gefunden (404) | Dialysezentrum Berlin-Mahlsdorf',
];
$descriptions = [
$titlesEn = [
'main' => 'Dialysis Center Berlin-Mahlsdorf | Nephrology & Dialysis Practice',
'leistungen' => 'Services & Specialties | Dialysis Center Berlin-Mahlsdorf',
'praxis' => 'Practice Equipment & Opening Hours | Dialysis Center Berlin-Mahlsdorf',
'team' => 'Our Medical Team & Staff | Dialysis Center Berlin-Mahlsdorf',
'ersttermin' => 'First Appointment Information & Forms | Dialysis Center Berlin-Mahlsdorf',
'kontakt' => 'Contact & Directions | Dialysis Center Berlin-Mahlsdorf',
'kontakt-formular' => 'Contact Request | Dialysis Center Berlin-Mahlsdorf',
'impressum' => 'Legal Notice (Impressum) | Dialysis Center Berlin-Mahlsdorf',
'datenschutz' => 'Privacy Policy | Dialysis Center Berlin-Mahlsdorf',
'404' => 'Page Not Found (404) | Dialysis Center Berlin-Mahlsdorf',
];
$descriptionsDe = [
'main' => 'Dialysezentrum Berlin-Mahlsdorf & Marzahn: Individuelle Hämodialyse, Online-HDF, nephrologische Ambulanz und ganzjährige Feriendialysen in Berlin.',
'leistungen' => 'Leistungen im Dialysezentrum Berlin-Mahlsdorf: Nephrologische Ambulanz, Hämodialyse, Online-HDF mit Nikkiso Haemo-Master, Fresenius BCM & Sonographie.',
'praxis' => 'Praxisausstattung, Dialyse-Schichten & Ambulanz-Sprechzeiten: 16 Plätze in Berlin-Mahlsdorf, 18 Plätze in Berlin-Marzahn und moderne Nikkiso-Dialysetechnik.',
@@ -30,23 +47,40 @@ $descriptions = [
'404' => 'Die angeforderte Seite wurde leider nicht gefunden. Zurück zur Startseite des Dialysezentrums Berlin-Mahlsdorf.',
];
$descriptionsEn = [
'main' => 'Dialysis Center Berlin-Mahlsdorf & Marzahn: Personalized hemodialysis, Online-HDF, nephrology outpatient clinic, and year-round holiday dialysis in Berlin.',
'leistungen' => 'Medical services at Dialysis Center Berlin-Mahlsdorf: Nephrology clinic, hemodialysis, Online-HDF with Nikkiso Haemo-Master, Fresenius BCM & ultrasound.',
'praxis' => 'Practice equipment, dialysis shifts & clinic hours: 16 stations in Berlin-Mahlsdorf, 18 stations in Berlin-Marzahn, and modern Nikkiso dialysis technology.',
'team' => 'Meet our medical team: Dr. med. Bianca Bischoff, Dr. med. Juliane Hoffzimmer, Dr. med. Claudia Körner, and 23 dedicated nursing and service staff.',
'ersttermin' => 'Checklist and interactive forms for your first appointment at Dialysis Center Berlin-Mahlsdorf: medical history, privacy consent & patient forms.',
'kontakt' => 'Contact & directions to Dialysis Center Berlin-Mahlsdorf (Thorner Str. 1, 12623 Berlin) and Satellite Dialysis Marzahn (Blumberger Damm 130, 12685 Berlin).',
'kontakt-formular' => 'Send us your inquiry online via the contact form of Dialysis Center Berlin-Mahlsdorf for appointments, holiday dialysis, or general questions.',
'impressum' => 'Legal notice (Impressum) and mandatory disclosures of the joint medical practice Dr. med. Bianca Bischoff & Dr. med. Juliane Hoffzimmer in Berlin-Mahlsdorf.',
'datenschutz' => 'Privacy policy and GDPR information on how personal data is processed at Dialysis Center Berlin-Mahlsdorf.',
'404' => 'The requested page could not be found. Return to the homepage of Dialysis Center Berlin-Mahlsdorf.',
];
$titles = $isEn ? $titlesEn : $titlesDe;
$descriptions = $isEn ? $descriptionsEn : $descriptionsDe;
$currentAction = isset($action) ? $action : 'main';
$pageTitle = isset($titles[$currentAction]) ? $titles[$currentAction] : 'Dialysezentrum Berlin-Mahlsdorf';
$pageTitle = isset($titles[$currentAction]) ? $titles[$currentAction] : ($isEn ? 'Dialysis Center Berlin-Mahlsdorf' : 'Dialysezentrum Berlin-Mahlsdorf');
$pageDescription = isset($descriptions[$currentAction]) ? $descriptions[$currentAction] : $descriptions['main'];
$baseUrl = 'https://www.dialyse-berlin.net';
$routePath = ($currentAction === 'main' || $currentAction === '404') ? '/' : ('/' . $currentAction . '.html');
$deUrl = $baseUrl . Helper::url($routePath, 'de');
$enUrl = $baseUrl . Helper::url($routePath, 'en');
if ($currentAction === '404') {
$robotsMeta = 'noindex, nofollow';
$canonicalUrl = null;
} elseif (in_array($currentAction, ['impressum', 'datenschutz', 'kontakt-formular'], true)) {
$robotsMeta = 'noindex, follow';
$canonicalUrl = $baseUrl . '/' . $currentAction . '.html';
} elseif ($currentAction === 'main') {
$robotsMeta = 'index, follow';
$canonicalUrl = $baseUrl . '/';
$canonicalUrl = $isEn ? $enUrl : $deUrl;
} else {
$robotsMeta = 'index, follow';
$canonicalUrl = $baseUrl . '/' . $currentAction . '.html';
$canonicalUrl = $isEn ? $enUrl : $deUrl;
}
$schemaGraph = [
@@ -59,6 +93,7 @@ $schemaGraph = [
'logo' => $baseUrl . '/img/logo_dialysezentrum.png',
'image' => $baseUrl . '/img/gallery/praxis1.jpg',
'description' => $descriptions['main'],
'availableLanguage' => ['de', 'en'],
'medicalSpecialty' => 'https://schema.org/Nephrology',
'telephone' => '+49-30-5662484',
'email' => 'kontakt@dialyse-berlin.net',
@@ -140,8 +175,8 @@ if ($canonicalUrl && $currentAction !== 'main') {
[
'@type' => 'ListItem',
'position' => 1,
'name' => 'Startseite',
'item' => $baseUrl . '/',
'name' => $isEn ? 'Home' : 'Startseite',
'item' => $baseUrl . Helper::url('/', $currentLang),
],
[
'@type' => 'ListItem',
@@ -154,7 +189,7 @@ if ($canonicalUrl && $currentAction !== 'main') {
}
?>
<!DOCTYPE html>
<html lang="de">
<html lang="<?=htmlspecialchars($currentLang)?>">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -164,11 +199,15 @@ if ($canonicalUrl && $currentAction !== 'main') {
<meta name="robots" content="<?=htmlspecialchars($robotsMeta)?>">
<?php if($canonicalUrl): ?>
<link rel="canonical" href="<?=htmlspecialchars($canonicalUrl)?>">
<link rel="alternate" hreflang="de" href="<?=htmlspecialchars($deUrl)?>">
<link rel="alternate" hreflang="en" href="<?=htmlspecialchars($enUrl)?>">
<link rel="alternate" hreflang="x-default" href="<?=htmlspecialchars($deUrl)?>">
<?php endif; ?>
<!-- Open Graph / Link Preview Meta Tags -->
<meta property="og:type" content="website">
<meta property="og:locale" content="de_DE">
<meta property="og:locale" content="<?=$isEn ? 'en_US' : 'de_DE'?>">
<meta property="og:locale:alternate" content="<?=$isEn ? 'de_DE' : 'en_US'?>">
<meta property="og:site_name" content="Dialysezentrum Berlin-Mahlsdorf">
<meta property="og:title" content="<?=htmlspecialchars($pageTitle)?>">
<meta property="og:description" content="<?=htmlspecialchars($pageDescription)?>">
@@ -178,7 +217,7 @@ if ($canonicalUrl && $currentAction !== 'main') {
<meta property="og:image" content="<?=$baseUrl?>/img/gallery/praxis1.jpg">
<meta property="og:image:width" content="1024">
<meta property="og:image:height" content="768">
<meta property="og:image:alt" content="Dialysezentrum Berlin-Mahlsdorf – Praxisgebäude in der Thorner Straße 1">
<meta property="og:image:alt" content="<?=$isEn ? 'Dialysis Center Berlin-Mahlsdorf – Practice building at Thorner Straße 1' : 'Dialysezentrum Berlin-Mahlsdorf – Praxisgebäude in der Thorner Straße 1'?>">
<!-- Schema.org Structured Data (JSON-LD) -->
<script type="application/ld+json"><?=json_encode(['@context' => 'https://schema.org', '@graph' => $schemaGraph], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)?></script>
@@ -197,32 +236,32 @@ if ($canonicalUrl && $currentAction !== 'main') {
</head>
<body>
<a href="#main-content" class="skip-link">Zum Hauptinhalt springen</a>
<a href="#main-content" class="skip-link"><?=$isEn ? 'Skip to main content' : 'Zum Hauptinhalt springen'?></a>
<div id="outer-container">
<!-- Top Info Bar -->
<div class="top-bar">
<div class="container top-bar-inner">
<div class="top-bar-left">
<a href="https://www.google.com/maps/place/Dialysezentrum+Berlin-Mahlsdorf/@52.5078291,13.6092903,17z/data=!3m1!4b1!4m6!3m5!1s0x47a84991f9c57f7f:0xad4486f559442067!8m2!3d52.5078291!4d13.6092903!16s%2Fg%2F1tdqghgn" target="_blank" rel="noopener noreferrer" class="top-bar-item top-bar-addr-main" title="Zentrumsdialyse Berlin-Mahlsdorf in Google Maps öffnen" aria-label="Zentrumsdialyse: Thorner Str. 1, 12623 Berlin (in Google Maps öffnen)">
<a href="https://www.google.com/maps/place/Dialysezentrum+Berlin-Mahlsdorf/@52.5078291,13.6092903,17z/data=!3m1!4b1!4m6!3m5!1s0x47a84991f9c57f7f:0xad4486f559442067!8m2!3d52.5078291!4d13.6092903!16s%2Fg%2F1tdqghgn" target="_blank" rel="noopener noreferrer" class="top-bar-item top-bar-addr-main" title="<?=$isEn ? 'Open Main Dialysis Center Berlin-Mahlsdorf in Google Maps' : 'Zentrumsdialyse Berlin-Mahlsdorf in Google Maps öffnen'?>" aria-label="<?=$isEn ? 'Main Center: Thorner Str. 1, 12623 Berlin (open in Google Maps)' : 'Zentrumsdialyse: Thorner Str. 1, 12623 Berlin (in Google Maps öffnen)'?>">
<svg class="top-bar-icon" aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
<span>Thorner Str. 1, 12623 Berlin</span>
</a>
<a href="https://www.google.com/maps/place/Dialysezentrum+Berlin-Mahlsdorf+LC/@52.5428128,13.5716785,17z/data=!3m1!4b1!4m6!3m5!1s0x47a84991f9d5111b:0xda0b4785760166c5!8m2!3d52.5428128!4d13.5716785!16s%2Fg%2F1ts_5mmj" target="_blank" rel="noopener noreferrer" class="top-bar-item top-bar-addr-satellite" title="Satellitendialyse Marzahn in Google Maps öffnen" aria-label="Satellitendialyse: Blumberger Damm 130, 12685 Berlin (in Google Maps öffnen)">
<a href="https://www.google.com/maps/place/Dialysezentrum+Berlin-Mahlsdorf+LC/@52.5428128,13.5716785,17z/data=!3m1!4b1!4m6!3m5!1s0x47a84991f9d5111b:0xda0b4785760166c5!8m2!3d52.5428128!4d13.5716785!16s%2Fg%2F1ts_5mmj" target="_blank" rel="noopener noreferrer" class="top-bar-item top-bar-addr-satellite" title="<?=$isEn ? 'Open Satellite Dialysis Marzahn in Google Maps' : 'Satellitendialyse Marzahn in Google Maps öffnen'?>" aria-label="<?=$isEn ? 'Satellite Unit: Blumberger Damm 130, 12685 Berlin (open in Google Maps)' : 'Satellitendialyse: Blumberger Damm 130, 12685 Berlin (in Google Maps öffnen)'?>">
<svg class="top-bar-icon" aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
<span>Satellit: Blumberger Damm 130, 12685 Berlin</span>
<span><?=$isEn ? 'Satellite: Blumberger Damm 130, 12685 Berlin' : 'Satellit: Blumberger Damm 130, 12685 Berlin'?></span>
</a>
</div>
<div class="top-bar-right">
<a href="tel:0305662484" title="Telefon Dialyse">
<a href="tel:0305662484" title="<?=$isEn ? 'Phone Dialysis' : 'Telefon Dialyse'?>">
<svg class="top-bar-icon" aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
Dialyse: 030 / 566 24 84
<?=$isEn ? 'Dialysis:' : 'Dialyse:'?> 030 / 566 24 84
</a>
<a href="tel:0305662539" title="Telefon Ambulanz">
<a href="tel:0305662539" title="<?=$isEn ? 'Phone Outpatient Clinic' : 'Telefon Ambulanz'?>">
<svg class="top-bar-icon" aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
Ambulanz: 030 / 566 25 39
<?=$isEn ? 'Clinic:' : 'Ambulanz:'?> 030 / 566 25 39
</a>
<a href="javascript:void(0);" class="mail-obf" data-usr="kontakt" data-dom="dialyse-berlin" data-tld="net" title="E-Mail schreiben" style="font-weight: 600;">
<a href="javascript:void(0);" class="mail-obf" data-usr="kontakt" data-dom="dialyse-berlin" data-tld="net" title="<?=$isEn ? 'Send Email' : 'E-Mail schreiben'?>" style="font-weight: 600;">
<svg class="top-bar-icon" aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
<span class="mail-val c-rev">net.nilreb-esylaid&#64;tkatnok</span>
</a>
@@ -233,25 +272,29 @@ if ($canonicalUrl && $currentAction !== 'main') {
<!-- Main Navigation Header -->
<header class="site-header">
<div class="container header-inner">
<a href="/" class="site-logo" title="Dialysezentrum Berlin-Mahlsdorf &ndash; Startseite">
<a href="<?=Helper::url('/')?>" class="site-logo" title="<?=$isEn ? 'Dialysis Center Berlin-Mahlsdorf – Home' : 'Dialysezentrum Berlin-Mahlsdorf – Startseite'?>">
<img src="/img/logo_dialysezentrum.png?v=<?=filemtime(__DIR__ . '/../img/logo_dialysezentrum.png')?>"
alt="Dialysezentrum Berlin-Mahlsdorf &ndash; Zentrum für Nephrologie &amp; Dialyse"
alt="<?=$isEn ? 'Dialysis Center Berlin-Mahlsdorf – Center for Nephrology & Dialysis' : 'Dialysezentrum Berlin-Mahlsdorf – Zentrum für Nephrologie & Dialyse'?>"
width="915" height="199"
class="site-logo-img">
</a>
<!-- Navigation Menu -->
<nav id="siteNav" aria-label="Hauptnavigation">
<nav id="siteNav" aria-label="<?=$isEn ? 'Main Navigation' : 'Hauptnavigation'?>">
<?php include('view/navigation.php'); ?>
</nav>
<!-- Actions & Mobile Toggle -->
<!-- Actions, Language Switcher & Mobile Toggle -->
<div class="header-actions">
<a href="/kontakt.html" class="header-cta-btn">
<div class="lang-switch" role="group" aria-label="<?=$isEn ? 'Language selection' : 'Sprachauswahl'?>">
<a href="<?=htmlspecialchars(Helper::url($routePath, 'de'))?>" class="lang-link <?=!$isEn ? 'active' : ''?>" lang="de" hreflang="de" <?=!$isEn ? 'aria-current="true"' : ''?> title="Deutsch">DE</a>
<a href="<?=htmlspecialchars(Helper::url($routePath, 'en'))?>" class="lang-link <?=$isEn ? 'active' : ''?>" lang="en" hreflang="en" <?=$isEn ? 'aria-current="true"' : ''?> title="English">EN</a>
</div>
<a href="<?=Helper::url('/kontakt.html')?>" class="header-cta-btn">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
<span>Kontakt / Termin</span>
<span><?=$isEn ? 'Contact / Appointment' : 'Kontakt / Termin'?></span>
</a>
<button class="nav-toggle" id="navToggle" aria-label="Menü öffnen" aria-expanded="false" aria-controls="navMenu">
<button class="nav-toggle" id="navToggle" aria-label="<?=$isEn ? 'Open menu' : 'Menü öffnen'?>" aria-expanded="false" aria-controls="navMenu">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24" id="toggleIcon"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
</button>
</div>
@@ -260,14 +303,14 @@ if ($canonicalUrl && $currentAction !== 'main') {
<!-- Holiday / Announcement Dialog (if configured) -->
<?php if(Helper::isHoliday($config) && $session->get('dialog') != 'dismissed'): ?>
<div id="holiday-wrapper" class="holiday-notice-banner" role="region" aria-label="Aktueller Praxishinweis">
<div id="holiday-wrapper" class="holiday-notice-banner" role="region" aria-label="<?=$isEn ? 'Current Practice Notice' : 'Aktueller Praxishinweis'?>">
<div class="container holiday-notice-inner">
<div class="holiday-notice-content">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
<div><?=Helper::parseHolidays($config)?></div>
<div><?=Helper::parseHolidays($config, $currentLang)?></div>
</div>
<button type="button" class="holiday-dismiss-btn" data-dismiss="dialog">
<span aria-hidden="true">&#x2715;</span> <span>Schließen</span>
<span aria-hidden="true">&#x2715;</span> <span><?=$isEn ? 'Close' : 'Schließen'?></span>
</button>
</div>
</div>
@@ -275,24 +318,24 @@ if ($canonicalUrl && $currentAction !== 'main') {
<!-- Hero / Motto Banner on Homepage -->
<?php if($currentAction === 'main'): ?>
<section class="hero-banner" aria-label="Willkommensbereich">
<section class="hero-banner" aria-label="<?=$isEn ? 'Welcome Section' : 'Willkommensbereich'?>">
<div class="container">
<div class="hero-content">
<div class="hero-badge">
<span aria-hidden="true">&#x2714;</span> &bdquo;Die individuelle Dialyse im grünen Gürtel von Berlin&ldquo;
<span aria-hidden="true">&#x2714;</span> <?=$isEn ? '&ldquo;Personalized dialysis in Berlin&rsquo;s green belt&rdquo;' : '&bdquo;Die individuelle Dialyse im grünen Gürtel von Berlin&ldquo;'?>
</div>
<h1 class="hero-title">Dialysezentrum Berlin-Mahlsdorf</h1>
<h1 class="hero-title"><?=$isEn ? 'Dialysis Center Berlin-Mahlsdorf' : 'Dialysezentrum Berlin-Mahlsdorf'?></h1>
<div class="hero-subtitle">
Dr. med. Bianca Bischoff &bull; Dr. med. Juliane Hoffzimmer
</div>
<div class="hero-doctors">
Fachärztinnen für Innere Medizin und Nephrologie
<?=$isEn ? 'Board-Certified Specialists in Internal Medicine and Nephrology' : 'Fachärztinnen für Innere Medizin und Nephrologie'?>
</div>
<div class="hero-actions">
<a href="/leistungen.html" class="btn btn-primary">Unsere Leistungen</a>
<a href="/praxis.html" class="btn btn-secondary">Praxis &amp; Öffnungszeiten</a>
<a href="/kontakt.html" class="btn btn-outline">Kontakt aufnehmen</a>
<a href="/ersttermin.html" class="btn btn-outline">Infos zum 1. Termin</a>
<a href="<?=Helper::url('/leistungen.html')?>" class="btn btn-primary"><?=$isEn ? 'Our Services' : 'Unsere Leistungen'?></a>
<a href="<?=Helper::url('/praxis.html')?>" class="btn btn-secondary"><?=$isEn ? 'Practice &amp; Hours' : 'Praxis &amp; Öffnungszeiten'?></a>
<a href="<?=Helper::url('/kontakt.html')?>" class="btn btn-outline"><?=$isEn ? 'Get in Touch' : 'Kontakt aufnehmen'?></a>
<a href="<?=Helper::url('/ersttermin.html')?>" class="btn btn-outline"><?=$isEn ? 'First Appointment Info' : 'Infos zum 1. Termin'?></a>
</div>
</div>
</div>
@@ -306,8 +349,8 @@ if ($canonicalUrl && $currentAction !== 'main') {
<div class="page-banner">
<div class="container page-banner-inner">
<div>
<nav class="breadcrumb" aria-label="Brotkrumennavigation">
<a href="/">Startseite</a> <span aria-hidden="true">&rsaquo;</span>
<nav class="breadcrumb" aria-label="<?=$isEn ? 'Breadcrumb Navigation' : 'Brotkrumennavigation'?>">
<a href="<?=Helper::url('/')?>"><?=$isEn ? 'Home' : 'Startseite'?></a> <span aria-hidden="true">&rsaquo;</span>
<span aria-current="page"><?=htmlspecialchars(trim(explode('|', $pageTitle)[0]))?></span>
</nav>
</div>
@@ -329,54 +372,60 @@ if ($canonicalUrl && $currentAction !== 'main') {
<div class="container footer-grid">
<!-- Col 1: About Praxis -->
<div>
<div class="footer-col-title">Dialysezentrum Berlin-Mahlsdorf</div>
<div class="footer-col-title"><?=$isEn ? 'Dialysis Center Berlin-Mahlsdorf' : 'Dialysezentrum Berlin-Mahlsdorf'?></div>
<p class="footer-desc">
Zentrum für Nephrologie und Dialyse.<br>
Dr. med. Bianca Bischoff und Dr. med. Juliane Hoffzimmer.<br>
Individuelle nephrologische Betreuung und ganzjährige Feriendialysen mit moderner Medizintechnik.
<?php if($isEn): ?>
Center for Nephrology and Dialysis.<br>
Dr. med. Bianca Bischoff and Dr. med. Juliane Hoffzimmer.<br>
Personalized nephrological care and year-round holiday dialysis with modern medical technology.
<?php else: ?>
Zentrum für Nephrologie und Dialyse.<br>
Dr. med. Bianca Bischoff und Dr. med. Juliane Hoffzimmer.<br>
Individuelle nephrologische Betreuung und ganzjährige Feriendialysen mit moderner Medizintechnik.
<?php endif; ?>
</p>
<div class="footer-contact-item">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
<span><strong>Zentrumsdialyse:</strong> Thorner Straße 1, 12623 Berlin</span>
<span><strong><?=$isEn ? 'Main Center:' : 'Zentrumsdialyse:'?></strong> Thorner Straße 1, 12623 Berlin</span>
</div>
<div class="footer-contact-item">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
<span><strong>Satellitendialyse:</strong> Blumberger Damm 130, 12685 Berlin</span>
<span><strong><?=$isEn ? 'Satellite Unit:' : 'Satellitendialyse:'?></strong> Blumberger Damm 130, 12685 Berlin</span>
</div>
</div>
<!-- Col 2: Navigation Links -->
<div>
<div class="footer-col-title">Navigation</div>
<div class="footer-col-title"><?=$isEn ? 'Navigation' : 'Navigation'?></div>
<ul class="footer-links">
<li><a href="/"><span aria-hidden="true">&rsaquo;</span> Startseite</a></li>
<li><a href="/leistungen.html"><span aria-hidden="true">&rsaquo;</span> Leistungen</a></li>
<li><a href="/praxis.html"><span aria-hidden="true">&rsaquo;</span> Praxisausstattung</a></li>
<li><a href="/team.html"><span aria-hidden="true">&rsaquo;</span> Unser Team</a></li>
<li><a href="/ersttermin.html"><span aria-hidden="true">&rsaquo;</span> Infos zum 1. Termin</a></li>
<li><a href="/kontakt.html"><span aria-hidden="true">&rsaquo;</span> Kontakt &amp; Anfahrt</a></li>
<li><a href="/kontakt-formular.html"><span aria-hidden="true">&rsaquo;</span> Kontaktformular</a></li>
<li><a href="<?=Helper::url('/')?>"><span aria-hidden="true">&rsaquo;</span> <?=$isEn ? 'Home' : 'Startseite'?></a></li>
<li><a href="<?=Helper::url('/leistungen.html')?>"><span aria-hidden="true">&rsaquo;</span> <?=$isEn ? 'Services' : 'Leistungen'?></a></li>
<li><a href="<?=Helper::url('/praxis.html')?>"><span aria-hidden="true">&rsaquo;</span> <?=$isEn ? 'Practice Equipment' : 'Praxisausstattung'?></a></li>
<li><a href="<?=Helper::url('/team.html')?>"><span aria-hidden="true">&rsaquo;</span> <?=$isEn ? 'Our Team' : 'Unser Team'?></a></li>
<li><a href="<?=Helper::url('/ersttermin.html')?>"><span aria-hidden="true">&rsaquo;</span> <?=$isEn ? 'First Appointment Info' : 'Infos zum 1. Termin'?></a></li>
<li><a href="<?=Helper::url('/kontakt.html')?>"><span aria-hidden="true">&rsaquo;</span> <?=$isEn ? 'Contact &amp; Directions' : 'Kontakt &amp; Anfahrt'?></a></li>
<li><a href="<?=Helper::url('/kontakt-formular.html')?>"><span aria-hidden="true">&rsaquo;</span> <?=$isEn ? 'Contact Form' : 'Kontaktformular'?></a></li>
</ul>
</div>
<!-- Col 3: Contact & Opening info -->
<div>
<div class="footer-col-title">Kontakt &amp; Erreichbarkeit</div>
<div class="footer-col-title"><?=$isEn ? 'Contact &amp; Availability' : 'Kontakt &amp; Erreichbarkeit'?></div>
<div class="footer-contact-item">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
<span>Dialyse: <strong>030 / 566 24 84</strong></span>
<span><?=$isEn ? 'Dialysis:' : 'Dialyse:'?> <strong>030 / 566 24 84</strong></span>
</div>
<div class="footer-contact-item">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
<span>Ambulanz: <strong>030 / 566 25 39</strong></span>
<span><?=$isEn ? 'Outpatient Clinic:' : 'Ambulanz:'?> <strong>030 / 566 25 39</strong></span>
</div>
<div class="footer-contact-item">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
<span>E-Mail: <a href="javascript:void(0);" class="mail-obf" data-usr="kontakt" data-dom="dialyse-berlin" data-tld="net" style="color: #cbd5e1; font-weight:600;"><span class="mail-val c-rev">net.nilreb-esylaid&#64;tkatnok</span></a></span>
<span><?=$isEn ? 'Email:' : 'E-Mail:'?> <a href="javascript:void(0);" class="mail-obf" data-usr="kontakt" data-dom="dialyse-berlin" data-tld="net" style="color: #cbd5e1; font-weight:600;"><span class="mail-val c-rev">net.nilreb-esylaid&#64;tkatnok</span></a></span>
</div>
<div class="footer-contact-item">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/></svg>
<span><a href="/files/dialyse_flyer.pdf" target="_blank" rel="noopener" style="color: #38bdf8; font-weight:600;"><span aria-hidden="true">&raquo;</span> Praxis-Flyer herunterladen (PDF)</a></span>
<span><a href="/files/dialyse_flyer.pdf" target="_blank" rel="noopener" style="color: #38bdf8; font-weight:600;"><span aria-hidden="true">&raquo;</span> <?=$isEn ? 'Download Practice Flyer (PDF)' : 'Praxis-Flyer herunterladen (PDF)'?></a></span>
</div>
</div>
</div>
@@ -384,12 +433,12 @@ if ($canonicalUrl && $currentAction !== 'main') {
<!-- Footer Bottom Bar -->
<div class="container footer-bottom">
<div>
&copy; <?=date('Y')?> Dialysezentrum Berlin-Mahlsdorf &bull; Alle Rechte vorbehalten.
&copy; <?=date('Y')?> <?=$isEn ? 'Dialysis Center Berlin-Mahlsdorf &bull; All rights reserved.' : 'Dialysezentrum Berlin-Mahlsdorf &bull; Alle Rechte vorbehalten.'?>
</div>
<div>
<a href="/impressum.html">Impressum</a>
<a href="/datenschutz.html">Datenschutz</a>
<a href="/kontakt.html">Kontakt</a>
<a href="<?=Helper::url('/impressum.html')?>"><?=$isEn ? 'Legal Notice' : 'Impressum'?></a>
<a href="<?=Helper::url('/datenschutz.html')?>"><?=$isEn ? 'Privacy Policy' : 'Datenschutz'?></a>
<a href="<?=Helper::url('/kontakt.html')?>"><?=$isEn ? 'Contact' : 'Kontakt'?></a>
</div>
</div>
</footer>
@@ -399,6 +448,10 @@ if ($canonicalUrl && $currentAction !== 'main') {
<!-- Interactive Scripts -->
<script type="text/javascript">
$(document).ready(function() {
var isEn = document.documentElement.lang === 'en';
var labelOpen = isEn ? 'Open menu' : 'Menü öffnen';
var labelClose = isEn ? 'Close menu' : 'Menü schließen';
// Anti-Spam Email De-Obfuscation
$('.mail-obf').each(function() {
var $el = $(this);
@@ -440,7 +493,7 @@ if ($canonicalUrl && $currentAction !== 'main') {
var isOpen = $navMenu.hasClass('is-open');
$navMenu.toggleClass('is-open');
$navToggle.attr('aria-expanded', !isOpen);
$navToggle.attr('aria-label', !isOpen ? 'Menü schließen' : 'Menü öffnen');
$navToggle.attr('aria-label', !isOpen ? labelClose : labelOpen);
// Toggle hamburger icon to X
if(!isOpen) {
@@ -455,7 +508,7 @@ if ($canonicalUrl && $currentAction !== 'main') {
if (!$(e.target).closest('#siteNav, #navToggle').length) {
if ($navMenu.hasClass('is-open')) {
$navMenu.removeClass('is-open');
$navToggle.attr('aria-expanded', 'false').attr('aria-label', 'Menü öffnen');
$navToggle.attr('aria-expanded', 'false').attr('aria-label', labelOpen);
$('#toggleIcon').html('<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>');
}
}
@@ -465,7 +518,7 @@ if ($canonicalUrl && $currentAction !== 'main') {
$(document).on('keydown', function(e) {
if (e.key === 'Escape' && $navMenu.hasClass('is-open')) {
$navMenu.removeClass('is-open');
$navToggle.attr('aria-expanded', 'false').attr('aria-label', 'Menü öffnen').trigger('focus');
$navToggle.attr('aria-expanded', 'false').attr('aria-label', labelOpen).trigger('focus');
$('#toggleIcon').html('<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>');
}
});
@@ -484,4 +537,4 @@ if ($canonicalUrl && $currentAction !== 'main') {
});
</script>
</body>
</html>
</html>