Sonderzeichenumgebaut auf deutsch

This commit is contained in:
Eskimue
2026-04-05 13:18:36 +02:00
parent 23df0ed163
commit 2689a32ed6
18 changed files with 178 additions and 678 deletions
+4 -4
View File
@@ -1,13 +1,13 @@
# Dokumentation
Hier liegen die internen Anleitungen und technischen Hilfen fuer das Projekt.
Hier liegen die internen Anleitungen und technischen Hilfen für das Projekt.
## Verfuegbar
## Verfügbar
- [`docs/README_PROJEKT.md`](README_PROJEKT.md)
Grundsaetzliche Erklaerung der Website, ihrer Bereiche und Datenfluesse
Grundsätzliche Erklärung der Website, ihrer Bereiche und Datenflüsse
- [`docs/README_LOCAL_WEBSERVER.md`](README_LOCAL_WEBSERVER.md)
Lokale Startanleitung fuer den PHP-Webserver auf den bekannten Arbeitsplaetzen
Lokale Startanleitung für den PHP-Webserver auf den bekannten Arbeitsplätzen
- [`docs/README_RECHTESYSTEM.md`](README_RECHTESYSTEM.md)
Beschreibung des aktuellen Rollen- und Seitenrechtesystems
+2 -2
View File
@@ -1,6 +1,6 @@
# Lokaler PHP-Webserver
Diese Anleitung enthaelt die lokalen Startbefehle fuer mehrere Rechner.
Diese Anleitung enthält die lokalen Startbefehle für mehrere Rechner.
## ARBEITSPLATZTM
@@ -80,4 +80,4 @@ Ctrl + C
## Hinweis
Der Webserver nutzt den eingebauten PHP-Entwicklungsserver und ist fuer lokale Entwicklung gedacht.
Der Webserver nutzt den eingebauten PHP-Entwicklungsserver und ist für lokale Entwicklung gedacht.
+32 -20
View File
@@ -1,6 +1,6 @@
# Projektueberblick
# Projektüberblick
Diese Datei beschreibt die Website grundsaetzlich: Worum es geht, welche Bereiche es gibt und wie die wichtigsten Bausteine zusammenspielen.
Diese Datei beschreibt die Website grundsätzlich: Worum es geht, welche Bereiche es gibt und wie die wichtigsten Bausteine zusammenspielen.
## Zweck der Website
@@ -8,16 +8,16 @@ Diese Datei beschreibt die Website grundsaetzlich: Worum es geht, welche Bereich
Die Seite verbindet:
- oeffentliche Astronomie-Werkzeuge
- persoenliche Benutzerfunktionen
- Import- und Auswerteprozesse fuer astronomische Daten
- Telegram-Anbindung fuer Benachrichtigungen und Tests
- öffentliche Astronomie-Werkzeuge
- persönliche Benutzerfunktionen
- Import- und Auswerteprozesse für astronomische Daten
- Telegram-Anbindung für Benachrichtigungen und Tests
## Hauptbereiche
Die Website besteht im Kern aus vier Bereichen.
## 1. Oeffentliche Astronomie-Seiten
## 1. Öffentliche Astronomie-Seiten
Unter [`public/`](../public) liegen die eigentlichen Seiten der Website.
@@ -26,7 +26,7 @@ Typische Inhalte sind:
- Mond und Mondphasen
- Planetensichtbarkeit
- Sternenhimmel
- Meteorstroeme
- Meteorströme
- Finsternisse und Bedeckungen
- Geocron und Geocron 3D
- Vorhersage-Seiten wie Monats- und Wochenvorhersage
@@ -48,7 +48,7 @@ Wichtige Konto-Seiten:
- [`public/settings.php`](../public/settings.php)
- [`public/my_favorites.php`](../public/my_favorites.php)
Benutzer koennen dort unter anderem:
Benutzer können dort unter anderem:
- ihr Konto verwalten
- Telegram verbinden
@@ -67,9 +67,9 @@ Aktuell gibt es:
Wichtig:
- `admin` und `master` haben Vollzugriff auf die geschuetzten Seiten
- `admin` und `master` haben Vollzugriff auf die geschützten Seiten
- normale Benutzer erhalten gezielte Seitenfreigaben
- das Header-Menue passt sich an die Seitenrechte an
- das Header-Menü passt sich an die Seitenrechte an
Die Details dazu stehen in:
@@ -87,17 +87,17 @@ Wichtige Skripte liegen unter:
Beispiele:
- [`scripts/import/import_tcrb.php`](../scripts/import/import_tcrb.php)
Importiert AAVSO-WebObs-Daten fuer T CrB
Importiert AAVSO-WebObs-Daten für T CrB
- [`scripts/import/import_celestrak_active.php`](../scripts/import/import_celestrak_active.php)
Importiert Satellitendaten
- [`scripts/telegram/telegram_cron.php`](../scripts/telegram/telegram_cron.php)
Fuehrt Telegram-Aufgaben zeitgesteuert aus
Führt Telegram-Aufgaben zeitgesteuert aus
## T CrB
Ein aktueller Spezialbereich ist `T CrB`.
Dazu gehoeren:
Dazu gehören:
- Import der AAVSO-Daten
- Speicherung in der Datenbank
@@ -114,10 +114,10 @@ Wichtige Dateien:
Die Website besitzt eine Telegram-Anbindung.
Damit koennen Benutzer:
Damit können Benutzer:
- ihr Konto mit Telegram verknuepfen
- spaeter Nachrichten oder Diagramme erhalten
- ihr Konto mit Telegram verknüpfen
- später Nachrichten oder Diagramme erhalten
Wichtige Bausteine:
@@ -134,7 +134,7 @@ Vereinfacht sieht der Ablauf so aus:
1. Import-Skripte holen astronomische Daten aus externen Quellen
2. Die Daten werden in der Datenbank gespeichert
3. Seiten unter `public/` lesen diese Daten aus und stellen sie dar
4. Cron-Skripte koennen daraus Telegram-Nachrichten oder andere Folgeaktionen erzeugen
4. Cron-Skripte können daraus Telegram-Nachrichten oder andere Folgeaktionen erzeugen
## Technischer Aufbau
@@ -151,16 +151,28 @@ Wichtige Verzeichnisse:
- [`docs/`](.)
Projektdokumentation
## Fuer neue Arbeit an der Seite wichtig
## Für neue Arbeit an der Seite wichtig
Wenn neue Funktionen dazukommen, sollte man immer an diese Punkte denken:
- braucht die Seite einen Eintrag im Rechtesystem
- soll sie im Header-Menue erscheinen
- soll sie im Header-Menü erscheinen
- braucht sie Datenimport oder Cron
- braucht sie Telegram-Anbindung
- braucht sie Dokumentation in `docs`
## Schreibweise
Für deutsche Ausgabetexte in UI, Meldungen, Dialogen und Dokumentation sollen normale Umlaute und `ß` verwendet werden.
Für technische Bezeichner soll das nicht automatisch gelten, insbesondere bei:
- Dateinamen
- URLs und Pfaden
- Funktionsnamen
- Variablennamen
- Datenbankspalten, Keys und anderen Schnittstellen
## Passende Zusatzdokumente
- [`docs/README_LOCAL_WEBSERVER.md`](README_LOCAL_WEBSERVER.md)
+34 -34
View File
@@ -1,22 +1,22 @@
# Rechtesystem
Diese Anleitung beschreibt das aktuelle Rechtesystem fuer die Seiten unter `public/`.
Diese Anleitung beschreibt das aktuelle Rechtesystem für die Seiten unter `public/`.
## Grundidee
Aktuell gilt:
- `admin` und `master` haben Vollzugriff auf alle Seiten unter `public/`
- normale Benutzer sehen standardmaessig keine geschuetzten Seiten
- einzelne Seiten koennen pro Benutzer durch einen `master` freigegeben werden
- das Header-Menue passt sich an die hinterlegten Seitenrechte an
- normale Benutzer sehen standardmäßig keine geschützten Seiten
- einzelne Seiten können pro Benutzer durch einen `master` freigegeben werden
- das Header-Menü passt sich an die hinterlegten Seitenrechte an
## Rollen
Es gibt zurzeit diese Rollen:
- `user`
Normale Benutzerrolle ohne automatischen Zugriff auf die geschuetzten Seiten
Normale Benutzerrolle ohne automatischen Zugriff auf die geschützten Seiten
- `admin`
Vollzugriff auf alle Seiten unter `public/`
- `master`
@@ -29,15 +29,15 @@ Die Rollen-Helfer liegen in [`public/auth_helpers.php`](../public/auth_helpers.p
Die zentrale Rechtebasis besteht aus drei Bausteinen:
- [`public/auth_helpers.php`](../public/auth_helpers.php)
Enthaelt Rollen-Helfer, Allowlist und die Liste der freigebbaren Seiten
Enthält Rollen-Helfer, Allowlist und die Liste der freigebbaren Seiten
- [`public/header.php`](../public/header.php)
Prueft beim Aufruf einer Seite den Zugriff und baut das Menue passend zu den Rechten
Prüft beim Aufruf einer Seite den Zugriff und baut das Menü passend zu den Rechten
- [`public/admin_users.php`](../public/admin_users.php)
Enthaelt die Benutzerverwaltung und die Seitenmatrix fuer `master`
Enthält die Benutzerverwaltung und die Seitenmatrix für `master`
## Datenbank
Fuer die Seitenfreigaben wird diese Tabelle verwendet:
Für die Seitenfreigaben wird diese Tabelle verwendet:
- `app_user_page_permissions`
@@ -54,10 +54,10 @@ Wichtige Spalten:
Wichtig:
- Nicht nur der Dateiname zaehlt.
- Nicht nur der Dateiname zählt.
- Unterordner-Seiten werden mit vollem relativen Pfad gespeichert.
## Oeffentliche Ausnahmen
## Öffentliche Ausnahmen
Einige Seiten bleiben ohne Seitenfreigabe erreichbar. Diese stehen in der Allowlist in [`public/auth_helpers.php`](../public/auth_helpers.php):
@@ -65,37 +65,37 @@ Einige Seiten bleiben ohne Seitenfreigabe erreichbar. Diese stehen in der Allowl
- `register.php`
- `logout.php`
## Wie der Zugriff geprueft wird
## Wie der Zugriff geprüft wird
Beim Laden einer Seite mit gemeinsamem Header passiert Folgendes:
1. `header.php` ermittelt den aktuellen `page_key`
2. Wenn der Benutzer `admin` oder `master` ist, ist der Zugriff erlaubt
3. Wenn die Seite in der Allowlist steht, ist der Zugriff erlaubt
4. Sonst wird in `app_user_page_permissions` geprueft, ob der Benutzer genau diese Seite sehen darf
4. Sonst wird in `app_user_page_permissions` geprüft, ob der Benutzer genau diese Seite sehen darf
5. Wenn nein, kommt `403 Zugriff verweigert`
Wichtig:
- Eine einzelne Seitenfreigabe macht den Benutzer nicht zu `admin`
- dadurch bleibt das Menue auf seine wirklich erlaubten Seiten beschraenkt
- dadurch bleibt das Menü auf seine wirklich erlaubten Seiten beschränkt
## Wie das Menue funktioniert
## Wie das Menü funktioniert
Das Header-Menue wird ebenfalls in [`public/header.php`](../public/header.php) aufgebaut.
Das Header-Menü wird ebenfalls in [`public/header.php`](../public/header.php) aufgebaut.
Dabei gilt:
- ausgeloggte Besucher sehen nur `Anmelden` und `Registrieren`
- `admin` und `master` sehen das volle Menue
- normale Benutzer sehen nur die Menuepunkte, deren `href` in ihren Seitenfreigaben vorhanden ist
- auch der Kontobereich unten im Menue wird entsprechend gefiltert
- `admin` und `master` sehen das volle Menü
- normale Benutzer sehen nur die Menüpunkte, deren `href` in ihren Seitenfreigaben vorhanden ist
- auch der Kontobereich unten im Menü wird entsprechend gefiltert
Damit das funktioniert, muessen Menuelink und `page_key` exakt zusammenpassen.
Damit das funktioniert, müssen Menülink und `page_key` exakt zusammenpassen.
Beispiel:
- Menuelink: `geocron/index.php`
- Menülink: `geocron/index.php`
- Datenbankeintrag: `geocron/index.php`
## Wie ein Master Seiten freigibt
@@ -105,8 +105,8 @@ Die Freigaben werden in [`public/admin_users.php`](../public/admin_users.php) ve
Ablauf:
1. Als `master` anmelden
2. `Benutzerverwaltung` oeffnen
3. Im Bereich `Seitenfreigaben` den gewuenschten Benutzer waehlen
2. `Benutzerverwaltung` öffnen
3. Im Bereich `Seitenfreigaben` den gewünschten Benutzer wählen
4. Haken bei den erlaubten Seiten setzen
5. Speichern
@@ -121,20 +121,20 @@ Die Liste der freigebaren Seiten steht zentral in [`public/auth_helpers.php`](..
- `manageablePublicPages()`
Nur Seiten, die dort eingetragen sind, koennen:
Nur Seiten, die dort eingetragen sind, können:
- in der Matrix erscheinen
- einzeln fuer Benutzer freigegeben werden
- sauber im Menue gefiltert werden
- einzeln für Benutzer freigegeben werden
- sauber im Menü gefiltert werden
## Neue Seite ins Rechtesystem aufnehmen
Wenn eine neue Seite unter `public/` dazukommt, sind in der Regel diese Schritte noetig:
Wenn eine neue Seite unter `public/` dazukommt, sind in der Regel diese Schritte nötig:
1. Seite anlegen
2. Seite so bauen, dass sie den gemeinsamen Header nutzt
3. In `manageablePublicPages()` eintragen
4. Falls noetig als Menuepunkt in [`public/header.php`](../public/header.php) eintragen
4. Falls nötig als Menüpunkt in [`public/header.php`](../public/header.php) eintragen
5. Darauf achten, dass `href` und `page_key` exakt gleich sind
Beispiel:
@@ -143,13 +143,13 @@ Beispiel:
'beispielseite.php' => 'Beispielseite',
```
Oder fuer Unterordner:
Oder für Unterordner:
```php
'tools/beispiel.php' => 'Beispielseite',
```
## Wichtige Regel fuer Unterordner
## Wichtige Regel für Unterordner
Bei Unterordnern niemals nur `index.php` verwenden.
@@ -161,13 +161,13 @@ Falsch:
- `index.php`
Die Seitenerkennung dafuer macht `currentPublicPageKey()` in [`public/auth_helpers.php`](../public/auth_helpers.php).
Die Seitenerkennung dafür macht `currentPublicPageKey()` in [`public/auth_helpers.php`](../public/auth_helpers.php).
## Aktueller Stand
Der aktuelle Zustand ist bewusst streng:
- standardmaessig nur `admin` oder `master`
- normale Benutzer nur ueber explizite Seitenfreigaben
- standardmäßig nur `admin` oder `master`
- normale Benutzer nur über explizite Seitenfreigaben
Spaeter kann entschieden werden, welche Seiten wieder standardmaessig fuer normale Benutzer sichtbar sein sollen.
Später kann entschieden werden, welche Seiten wieder standardmäßig für normale Benutzer sichtbar sein sollen.