Prüfe Anmeldung…

← Zurück zur Homepage

Handbuch

Alles was du wissen musst, um hebold.de zu verstehen, zu pflegen und weiterzuentwickeln. Keine technischen Vorkenntnisse nötig — die wichtigsten Dinge sind so einfach wie eine Textdatei bearbeiten.

Dateistruktur

Das Projekt besteht aus wenigen übersichtlichen Dateien:

hebold.de/
├── index.html ← Hauptseite (Homepage)
├── blog.html ← Blog (öffentlich, Zeitungs-Design)
├── login.html ← Anmeldeseite für Besucher-Accounts
├── admin.html ← Admin: Blog, Projekte, Zugang (nur nach Login)
├── impressum.html ← Impressum (Adresse noch eintragen!)
├── datenschutz.html ← Datenschutzerklärung
├── handbuch.html ← Diese Datei
├── entwicklungsplan.html ← Roadmap & To-Dos
├── changelog.txt ← Versionshistorie
├── favicon.svg ← Goldenes "h" als Browser-Icon
├── robots.txt ← Suchmaschinen-Hinweise
├── .htaccess ← Options -Indexes (Strato)
├── .user.ini ← PHP-Einstellungen für Strato FastCGI
├── css/
│ └── style.css ← Alle Styles (index.html)
├── js/
│ ├── main.js ← Hotspot-Konfiguration & Logik
│ ├── auth.js ← Login/Logout-Logik
│ ├── gate.js ← Zugangsschutz (wird in alle Seiten eingebunden)
│ ├── season.js ← Jahreszeiten-Bildwechsel
│ ├── guide.js ← Geführte Tour & Hilfe-Modal
│ └── easter_eggs.js ← Easter-Egg-Tastaturkombos & Highscore-Modal
├── api/
│ ├── login.php ← Anmeldung (POST) + Zugriff protokollieren
│ ├── logout.php ← Abmeldung
│ ├── check.php ← Session-Status + Rolle prüfen
│ ├── posts.php ← Blog-Artikel (CRUD)
│ ├── upload.php ← Bild-Upload für Editor
│ ├── users.php ← Benutzerverwaltung (Admin + Viewer-Accounts)
│ ├── site_config.php ← Zugangsschutz-Schalter (GET: öffentlich, POST: admin)
│ ├── access_log.php ← Zugriffsprotokoll lesen/leeren (admin only)
│ ├── contact.php ← Kontaktformular (E-Mail)
│ ├── highscores.php ← Easter-Egg-Einträge (CRUD + E-Mail)
│ └── setup.php ← Ersteinrichtung (einmalig)
├── data/
│ ├── posts.json ← Blog-Artikel (JSON)
│ ├── site_config.json ← Zugangsschutz-Einstellung (⚠ nicht überschreiben!)
│ ├── access_log.json ← Zugriffsprotokoll (⚠ nicht überschreiben!)
│ ├── highscores.json ← Easter-Egg-Einträge (⚠ nicht überschreiben!)
│ └── .htaccess ← Deny from all
└── media/
├── startbild.png ← Schreibtisch-Bild (Homepage)
├── BlogZeitung.png ← Zeitungs-Bild (blog_test.html)
├── logo_hebold_de_f.png ← Logo (farbig)
├── logo_hebold_de_n.png ← Logo (Skizze)
└── uploads/ ← Blog-Bilder (vom Editor hochgeladen)

Konzept

Die Homepage zeigt ein Vollbild-Foto eines Schreibtisches. Auf verschiedenen Objekten dieses Schreibtisches sitzen interaktive Hotspots — leuchtende Punkte, die beim Hover ihr Label zeigen. Ein Klick öffnet ein Slide-in-Panel von rechts mit weiteren Informationen und Links.

Das Bild füllt immer den gesamten Bildschirm — egal ob 4K-Monitor, Laptop oder Tablet. Die Hotspots werden rechnerisch korrekt positioniert, sodass sie auch bei anderen Auflösungen exakt auf den Objekten sitzen.

Wichtig: Alle Inhalte (Texte, Links, Panel-Beschreibungen) werden direkt in js/main.js gepflegt — kein Backend, kein CMS, keine Datenbank nötig.

Wie funktionieren Hotspots?

Hotspots sind goldene, pulsierende Punkte auf dem Schreibtisch-Bild. Jeder Hotspot ist in der Datei js/main.js als ein Objekt im Array HOTSPOTS definiert.

Die Position wird in Prozent des Originalbildes angegeben (x von links, y von oben). Das JavaScript rechnet diese Werte bei jeder Bildschirmgröße neu in Pixel um.

Aktuelle Hotspots

ID Objekt Label Position (x / y)
maciMacProjekte50% / 38%
buecherBücherstapelLesen10% / 50%
stifteStiftehalterDesign20% / 70%
uhrTischuhrÜber mich65% / 64%
radioRadioMedien80% / 63%
becherCREATE-BecherKontakt88% / 64%
globusGlobusWelt74% / 50%
kerzeKerzeHighscore69% / 57%
skizzeSkizzenblockNotizen42% / 82%

Hotspot hinzufügen

Öffne js/main.js und füge im Array HOTSPOTS ein neues Objekt hinzu. Kopiere am besten einen bestehenden Eintrag und passe ihn an:

{
    id:         'stuhl',         // einmalige ID (keine Leerzeichen)
    x:          35,              // Position von links in % (0–100)
    y:          90,              // Position von oben in % (0–100)
    icon:       '🪑',            // Emoji für das Panel
    label:      'Lounge',        // Text im Hover-Label & Panel-Titel
    subtitle:   'Entspannung',   // Kleiner Text unter dem Titel
    labelBelow: false,           // true = Label erscheint unterhalb des Punktes
    content: {
        description: 'Ein Platz zum Durchatmen.',
        links: [
            { text: 'Mehr erfahren', href: '#' },
        ]
    }
},
Tipp: Um die richtige Position (x/y) zu ermitteln, öffne die Homepage im Browser, mache Rechtsklick → „Untersuchen" (DevTools), wähle das Bild aus und notiere die Mausposition relativ zur Bildgröße.

Hotspot entfernen

Öffne js/main.js und lösche einfach das gesamte Objekt aus dem HOTSPOTS-Array — von der öffnenden geschwungenen Klammer { bis zum schließenden }, (inklusive Komma).

Position eines Hotspots anpassen

Ändere in js/main.js die x- oder y-Werte des jeweiligen Hotspot-Objekts. Speichern → Browser neu laden → fertig.

x = Abstand vom linken Bildrand (0 = ganz links, 100 = ganz rechts)
y = Abstand vom oberen Bildrand (0 = ganz oben, 100 = ganz unten)

Panel-Inhalt ändern

Jeder Hotspot hat einen content-Block mit description (Fließtext) und links (Liste).

content: {
    description: 'Dieser Text erscheint im Panel.',
    links: [
        { text: 'Link-Text',      href: 'https://...' },
        { text: 'E-Mail',          href: 'mailto:du@example.de' },
        { text: 'Interner Anker',  href: '#abschnitt' },
    ]
}

Lege die neue Logo-Datei in den Ordner media/. Dann ändere in index.html den Pfad im <img>-Tag innerhalb .logo-header:

<img src="media/neues-logo.png" alt="hebold.de" class="logo-img">

Das Logo nutzt mix-blend-mode: multiply — das bedeutet: weißer Hintergrund wird transparent, farbige/dunkle Bereiche bleiben sichtbar. Das funktioniert nur korrekt wenn das Logo einen weißen (nicht transparenten) Hintergrund hat.

Startbild & Saisonale Bildwechsel

Das Startbild wird automatisch je nach Jahreszeit gewechselt. Die Bildpfade sind in js/season.js im Objekt SEASONS konfiguriert:

const SEASONS = {
    fruehling: { img: 'media/startbild.png',        ... },
    sommer:    { img: 'media/startbild_sommer.png',  ... },
    herbst:    { img: 'media/startbild_herbst.png',  ... },
    winter:    { img: 'media/startbild_winter.png',  ... },
};

Um ein Bild zu ersetzen: neue Datei in media/ ablegen und den Pfad in js/season.js anpassen. Der Season-Picker (nach Login sichtbar) erlaubt manuelles Umschalten zwischen den vier Jahreszeiten — die Wahl gilt nur für das eigene Gerät (localStorage).

Hinweis: Nach einem Bildwechsel müssen die Hotspot-Positionen (x/y-Werte in js/main.js) neu kalibriert werden, da sich die Objekte auf dem Bild verschoben haben.

Öffentliche Blog-Seite (blog.html)

Die Blog-Seite ist unter blog.html erreichbar und zeigt alle veröffentlichten Artikel im Zeitungs-Design. Entwürfe sind nur im Admin-Bereich sichtbar.

Das Layout ordnet Artikel automatisch:

ArtikelPosition
1. ArtikelHauptartikel, 2 Spalten breit (Titelgeschichte)
2.–3. ArtikelRechte Spalten (nebeneinander)
4+ ArtikelZweite Zeile, 4 gleichbreite Spalten

Klick auf einen Artikel öffnet den vollständigen Text im Overlay — ohne Seitenwechsel.

Artikel schreiben (admin.html)

Nur für eingeloggte Nutzer erreichbar. Den Link findet man im Header nach dem Anmelden.

AktionBeschreibung
Neuer ArtikelButton oben links — öffnet leeren Editor
SpeichernButton „Speichern" oder Ctrl+S
StatusEntwurf (nicht öffentlich) oder Veröffentlicht
Cover-BildURL eingeben oder Bild hochladen — erscheint als Header-Foto
LöschenIn der Artikel-Liste rechts neben jedem Eintrag
Tag/NachtSchalter oben rechts — wechselt Editor-Hintergrund
Hinweis: Der Admin-Bereich ist lokal (file://) nur eingeschränkt nutzbar — Artikel speichern erfordert den PHP-Server.

Bilder im Editor

TinyMCE bietet drei Wege für Bilder:

MethodeSo geht's
HochladenEinfügen → Bild → Datei hochladen — speichert in media/uploads/
URLEinfügen → Bild → URL eintragen (externe Bilder)
EinfügenBild aus Zwischenablage direkt in den Editor einfügen

Hochgeladene Bilder liegen in media/uploads/ auf dem Server. Erlaubte Formate: JPG, PNG, GIF, WebP. Maximalgröße: 8 MB.

Reisen & Bilder — Album-Übersicht

Die Seite fotos.html zeigt alle veröffentlichten Foto-Alben im Zeitungs-Stil. Das neueste Album erscheint groß (featured), die weiteren als gleichmäßiges Karten-Raster. Ein Klick öffnet das Album direkt — die URL wechselt auf fotos.html#album-id, sodass Browser-Zurück funktioniert.

Erreichbar über:

Album anlegen & verwalten

  1. admin.html öffnen → Tab „Reisen"
  2. „+ Neu" klicken
  3. Felder ausfüllen:
    • Titel — Pflichtfeld, erscheint als Hauptüberschrift
    • Ort · Datum — z. B. „Mallorca · März 2026", erscheint als Badge und Unterzeile
    • Einleitungstext — 1–3 Sätze, erscheinen als Intro über dem Foto-Grid
    • Datum (Sortierung) — optional; überschreibt die automatische Sortierung (siehe unten)
    • Themen-Tags — optional; kommagetrennte Schlagwörter für den Tag-Filter
  4. Titelbild hochladen — erscheint als Hero (Vollbild)
  5. Fotos hochladen — Mehrfachauswahl möglich; pro Foto:
    • Bildunterschrift — erscheint beim Hover und in der Lightbox
    • Größe — bestimmt wie viel Platz das Bild im Grid einnimmt (siehe unten)
  6. Status auf „Veröffentlicht" setzen → Speichern
Fotos werden in der Reihenfolge angezeigt, in der sie hochgeladen wurden. Die Reihenfolge kann nach dem Speichern durch erneutes Hochladen angepasst werden (Foto entfernen, an gewünschter Position wieder hochladen).

Layouts, Größen & Optionen

Layout — wählbar pro Album:

LayoutBeschreibung
Oben + GridTitelbild nimmt 82% der Fensterhöhe ein, Foto-Masonry darunter
Bild linksTitelbild klebt links (sticky), Foto-Grid scrollt rechts daneben
Bild rechtsSpiegelung: Foto-Grid links, Titelbild rechts
PanoramaTitelbild 90vh, Fotos als breite Vollbreite-Streifen untereinander

Bildgrößen im Grid (CSS Grid Spans):

GrößeSpalten × ZeilenWirkung
1x11 × 1Kleines Quadrat
2x12 × 1Querformat, halbe Breite
1x21 × 2Hochformat
2x22 × 2Großes Quadrat
3x13 × 1Breites Querformat
4x14 × 1Volle Breite (Panorama)
grid-auto-flow: dense füllt Lücken automatisch auf — kleinere Bilder rücken in freie Felder nach. Es ist trotzdem sinnvoll, die Größen so zu wählen, dass die Summe der Spalten-Spans aufgeht (z. B. 2+1+1 = 4 für eine volle Zeile).

Weitere Optionen:

OptionWirkung
Mit Abstand6px Spalt zwischen den Bildern (Standard: an)
Rahmen sprengenEinzelne Bilder versetzt leicht aus dem Grid heraus — editorialer Look

Diese Optionen sind auf fotos.html auch für Besucher umschaltbar (Leiste unter dem Zurück-Button). Im Admin wird der Default-Wert für das Album gesetzt.

Datum, Tags & Blog-Integration

Datum (Sortierung)

Alben werden standardmäßig nach ihrem Erstellungsdatum sortiert — neueste zuerst. Mit dem Feld „Datum (Sortierung)" kann dieses Datum überschrieben werden, z. B. um einen alten Urlaub ans richtige Ende der Zeitlinie zu setzen.

Feld leer→ automatisch nach Erstelldatum sortiert
Feld gefüllt (z. B. 2009-08-15)→ Album erscheint an dieser Position in der Zeitlinie
Das Datum beeinflusst nur die Reihenfolge in der Übersicht — es verändert nicht den angezeigten Text im Feld „Ort · Datum" (Untertitel).

Themen-Tags

Tags ermöglichen es, thematisch zusammengehörende Alben zu bündeln — z. B. Gardasee, Portrait oder München. Besucher sehen auf fotos.html eine Filter-Leiste und können auf einen Tag klicken, um nur die passenden Alben anzuzeigen.

Album im Blog anzeigen

Mit der Checkbox „Im Blog anzeigen" (in den Optionen des Album-Editors) erscheint das Album auf blog.html als Karte, nach Datum eingemischt zwischen regulären Blog-Artikeln.

Album-Sichtbarkeit & Gruppen

Jedes Album kann individuell gesteuert werden — wer es sehen darf. Die Einstellung findet sich im Admin-Tab „Reisen" im Bereich Sichtbarkeit.

StufeWer sieht das Album
ÖffentlichAlle — auch ohne Login
Nur MitgliederJeder angemeldete Benutzer (Besucher-Account oder Admin)
AusgewähltNur bestimmte Gruppen und/oder einzelne Benutzer
Die Filterung erfolgt vollständig auf dem Server — der Browser erhält nur Alben, die für den jeweiligen Benutzer freigegeben sind. Es reicht nicht, die URL zu kennen; der Server prüft bei jedem Zugriff.

Gruppen anlegen und befüllen:

  1. admin.html → Tab „Reisen"
  2. Sidebar: Bereich „Gruppen verwalten" aufklappen
  3. Gruppenname eingeben (z. B. „Familie" oder „Freunde") → Anlegen
  4. Auf das Stift-Symbol ✎ klicken → Besucher-Accounts anhaken → Speichern

Album für Gruppen/Personen freischalten:

  1. Album in der Sidebar anklicken
  2. Sichtbarkeit auf „Ausgewählt" setzen
  3. Gewünschte Gruppen und/oder Einzelpersonen anhaken
  4. Speichern
Admins sehen immer alle Alben — unabhängig von der Sichtbarkeitseinstellung. Besucher ohne gültigen Login sehen nur öffentliche Alben.

Wetter-Widget

Das Wetter-Widget erscheint unten links auf der Startseite. Es zeigt die aktuelle Temperatur, Wetterlage und Windgeschwindigkeit für Nürnberg. Ein Klick auf das Widget klappt eine 7-Tage-Vorschau auf.

Wettereffekte auf dem Startbild

Je nach aktuellem Wetter erscheinen animierte Effekte auf dem Startbild. Zwei Canvas-Ebenen liegen über dem Bild:

Ebenez-IndexInhalt
Luft-Canvas7Regen, Schnee, Wind, Blitze, Sonnenstrahlen
Glas-Canvas8Regentropfen auf Glasscheibe, Schneehaufen, Frost

Effekte nach WMO-Wettercode:

EffektBeschreibung
☀️ SonnenstrahlenWMO 0/1/2 — diagonale Lichtstrahlen sweepen von rechts oben über das Bild
🌦️ NieselregenWMO 51–55 — leichte Tropfen + wenige Glasscheiben-Tropfen
🌧️ RegenWMO 61–63, 80–81 — Tropfen + Glasscheiben-Tropfen laufen runter
🌊 StarkregenWMO 65, 82 — dichte Tropfen, viele laufende Tropfen mit Schweif
⛈️ GewitterWMO 95/96/99 — wie Starkregen + Blitze + Leuchtblitze auf Glasscheibe
🌨️ SchneeWMO 71–77, 85 — Flocken, Schneehaufen wächst am Rand
❄️ Starker SchneeWMO 75, 86 — dichter Schneefall, schneller wachsender Haufen
💨 WindWind > 45 km/h — horizontale Streifen, weht Tropfen und Schnee weg
Bei Temp < 2°C und Schneefall beginnt die Glasscheibe von den Rändern her zuzufrieren — Eis-Kristalle wachsen nach innen. Wind bläst den Frost wieder weg. Alle Canvases haben pointer-events: none — Hotspots bleiben jederzeit klickbar.

Zum Testen aller Effekte: weather_mockup.html öffnen — dort lassen sich alle Wettereffekte per Knopfdruck durchschalten.

Zugangsschutz aktivieren

Die gesamte Homepage kann hinter eine Anmeldeschranke gelegt werden — schaltbar per Toggle im Admin-Panel. Wenn aktiv, werden nicht angemeldete Besucher automatisch zur Anmeldeseite (login.html) weitergeleitet. Ohne Anmeldung ist nichts sichtbar.

  1. admin.html öffnen → Tab „Zugang"
  2. Schalter „Zugangsschutz aktiv/inaktiv" umlegen → sofort wirksam
Der Schalter gilt für alle Seiten außer impressum.html und datenschutz.html — diese sind aus rechtlichen Gründen immer erreichbar. Admin-Seiten (admin.html, handbuch.html, entwicklungsplan.html) sind grundsätzlich nur für Admins zugänglich, unabhängig davon ob der Zugangsschutz an oder aus ist.

Besucher-Accounts anlegen

Besucher-Accounts ermöglichen es, bestimmten Personen Zugang zur Seite zu geben, ohne ihnen Admin-Rechte zu erteilen. Jede Anmeldung wird protokolliert.

  1. admin.html → Tab „Zugang" → Abschnitt „Besucher-Accounts"
  2. Benutzername, Anzeigename und Passwort eingeben → „+ Hinzufügen"
  3. Zugangsdaten an die Person weitergeben

Besucher-Accounts haben keinen Zugriff auf admin.html, handbuch.html oder entwicklungsplan.html. Passwort zurücksetzen und Account löschen ist jederzeit im gleichen Tab möglich.

Technisches Detail: Accounts werden in data/users.json mit dem Feld "role": "viewer" gespeichert. Bestehende Admin-Accounts ohne role-Feld werden automatisch als Admin behandelt.

Zugriffsprotokoll

Jede erfolgreiche Anmeldung — egal ob Admin oder Besucher — wird automatisch in data/access_log.json protokolliert.

Das Protokoll zeigt:

Einsehbar unter admin.html → Zugang → Zugriffsprotokoll. Das Protokoll kann dort auch geleert werden. Es werden maximal 500 Einträge gespeichert (älteste werden automatisch verworfen).

Auf einem neuen Rechner einrichten

Das gesamte Projekt steckt in einem einzigen Ordner — einfach kopieren. Die statischen Seiten (index.html, blog.html etc.) funktionieren sofort im Browser ohne weitere Software. Für das Blog-Backend (Artikel laden, Bilder hochladen, Login) ist ein lokaler PHP-Server nötig.

Variante A — Nur anschauen (kein PHP)

Ordner kopieren → index.html im Browser öffnen. Alles außer dem Blog-Backend funktioniert. Blog-Artikel sind lokal nicht sichtbar (kein PHP), der Rest der Seite schon.

Variante B — Vollständig lokal (mit PHP)

Lokalen PHP-Server installieren, z.B.:

SoftwareSystemDownload
LaragonWindowslaragon.org — empfohlen, einfachste Einrichtung
XAMPPWindows / Macapachefriends.org
MAMPMacmamp.info
PHP Built-inallephp -S localhost:8080 im Projektordner

Projektordner in das Web-Root legen (z.B. C:\laragon\www\hebold.de\) → im Browser http://localhost/hebold.de/ aufrufen.

Ersteinrichtung nicht vergessen: Nach dem Einrichten einmalig http://localhost/hebold.de/api/setup.php aufrufen um den Admin-Benutzer anzulegen. Danach diese Datei vom Server löschen.

Dateien auf den Server laden (Strato)

Alle Dateien aus dem Projektordner per FTP oder Strato-Dateimanager hochladen. Folgende Verzeichnisse müssen auf dem Server schreibbar sein:

PfadWarum
data/posts.json wird von PHP geschrieben
media/uploads/Hochgeladene Bilder aus dem Editor

Wichtig für Strato: Die Datei .user.ini muss im Wurzelverzeichnis liegen (nicht löschen). Sie setzt PHP-Session-Sicherheitsoptionen für Strato's FastCGI-Betrieb. PHP-Einstellungen dürfen bei Strato nicht in .htaccess stehen.

Ersteinrichtung nach dem Upload

Nach dem ersten Server-Upload einmalig ausführen:

SchrittAktion
1https://hebold.de/api/setup.php im Browser aufrufen
2Admin-Benutzer wird angelegt (Passwort in config/users.js eintragbar)
3api/setup.php vom Server löschen — nur einmalig nötig
4Unter https://hebold.de/admin.html einloggen und ersten Artikel schreiben
Benutzerverwaltung: Passwörter und Benutzer werden in config/users.js gespeichert. Diese Datei ist bewusst einfach gehalten — für eine produktive Website empfiehlt sich langfristig ein serverseitiges Passwort-Hashing.

CSS-Variablen (Farben & Design)

Alle Designfarben sind in css/style.css als Variablen am Anfang der Datei definiert:

VariableWertVerwendung
--gold#c9a84cHotspot-Farbe, Akzente
--gold-light#e8c97eHover-Zustände
--panel-bgrgba(20,16,10,0.92)Panel-Hintergrund
--panel-borderrgba(201,168,76,0.25)Panel-Rahmen
--text-primary#f0ead8Haupttext
--text-muted#a09070Fließtext, Labels

Easter Eggs & Highscores

Auf der Startseite sind versteckte Tastaturkombinationen eingebaut. Wer eine Kombination eintippt (ohne Fokus in einem Eingabefeld), löst das Easter Egg aus: Konfetti-Regen, ein Modal zum Namenseintrag und eine E-Mail-Benachrichtigung. Die Bestenliste ist über den Kerze-Hotspot 🏆 erreichbar.

NameSequenz (tippen)Beschreibung
π-Highscore3,1415Die Kreiszahl
Die Antwort42Hitchhiker's Guide to the Galaxy
Semper FisemperfiMotto von Leroy Jethro Gibbs (NCIS)

Einträge werden in data/highscores.json gespeichert. Bei jedem neuen Eintrag geht eine E-Mail an sascha.nutzt@gmx.net.

Neues Easter Egg hinzufügen

Zwei Stellen müssen angepasst werden:

1. js/easter_eggs.js — Eintrag in window.EASTER_EGGS ergänzen:

{
    id:       'meincode',          // eindeutige ID (nur Kleinbuchstaben/Zahlen)
    label:    'Mein Highscore',    // Anzeigename im Panel und Modal
    icon:     '⭐',                // Emoji für die Karte
    hint:     'Ein rätselhafter Hinweis.', // sichtbar im Panel — kein Lösungshinweis!
    sequence: ['h','e','l','l','o'],  // Buchstaben/Zeichen nacheinander tippen
},

2. api/highscores.php — ID in die Whitelist eintragen:

$validCodes = ['pi', '42', 'semperfi', 'meincode'];
Hinweis: Die Sequenz darf keine Sonderzeichen enthalten, die der Browser anderweitig verarbeitet (z. B. Leertaste scrollt die Seite). Buchstaben und Ziffern sind sicher.

Tastaturkürzel

TasteAktion
ESCGeöffnetes Panel schließen

Impressum & Datenschutz

Beide Seiten liegen als eigenständige HTML-Dateien vor und sind im Footer der Homepage verlinkt. Vor dem Launch bitte ausfüllen:

Was noch eingetragen werden muss

DateiWas fehlt
impressum.htmlStraße, PLZ, Ort — ggf. Telefon
datenschutz.htmlGleiche Adresse wie im Impressum

Cookie-Hinweis

Der Cookie-Hinweis erscheint beim ersten Besuch als schmale Leiste. Nach Klick auf „OK" wird er via localStorage dauerhaft weggeklickt. Er enthält einen Link zur Datenschutzerklärung.

Da ausschließlich technisch notwendige Cookies (PHP-Session nach Login) und Google Fonts verwendet werden, ist keine aktive Einwilligung erforderlich — der Hinweis reicht aus.

Favicon & robots.txt

Favicon

Das Favicon (favicon.svg) zeigt ein goldenes „h" auf dunklem Grund. Es wird in alle HTML-Dateien über folgenden Tag eingebunden:

<link rel="icon" type="image/svg+xml" href="favicon.svg">

Für bessere Browser-Kompatibilität empfiehlt sich zusätzlich eine favicon.ico Datei (32×32px) — z.B. mit realfavicongenerator.net erstellen.

robots.txt

Die robots.txt im Wurzelverzeichnis sperrt Suchmaschinen aus den internen Ordnern aus:

Disallow: /api/
Disallow: /data/
Disallow: /config/