Create Go Live documentation, walkthrough, and plugin manuals in Wiki

AI
2026-07-18 14:40:01 +00:00
commit dca863baf2
10 changed files with 363 additions and 0 deletions
+42
@@ -0,0 +1,42 @@
# 📚 Handbuch für Fachbereiche & Editoren
Dieses Handbuch richtet sich an die Fachbereichsleiter und Editoren der Website des Freiherr-vom-Stein-Gymnasiums. Es erklärt, wie Seiten gepflegt, das Menü verwaltet und das integrierte Wiki genutzt wird.
## 📝 Seiten bearbeiten und anlegen
### 1. Anmeldung am System
1. Rufe die Adresse `https://freiherr-vom-stein-gymnasium.de/wp-admin/` auf.
2. Klicke auf den blauen Button **"Mit Microsoft 365 anmelden"**.
3. Logge dich mit deiner schulischen E-Mail-Adresse (`vornamen.nachname@steingymnasium.de`) und deinem Microsoft-Passwort ein.
4. Nach dem erfolgreichen Login wirst du direkt in das WordPress-Backend weitergeleitet.
### 2. Eine Fachbereichsseite bearbeiten
1. Gehe im linken Menü auf **Seiten -> Alle Seiten**.
2. Nutze das Suchfeld, um nach deinem Fachbereich (z.B. "Mathematik") zu suchen.
3. Fahre mit der Maus über den Eintrag und klicke auf **Bearbeiten**.
4. Nimm die Änderungen im Gutenberg-Editor vor.
5. Klicke oben rechts auf **Aktualisieren**, um die Änderungen live zu schalten.
### ⚠️ Wichtig für Fächer (Zuordnung):
Alle Fachbereiche sind hierarchisch der Seite **Lehrkräfte** (kollegium) untergeordnet. Wenn du ein neues Fach anlegst, stelle sicher, dass unter *Seiteneinstellungen -> Attribute -> Übergeordnete Seite* die Seite **Lehrkräfte** ausgewählt ist.
---
## 📖 Nutzung des integrierten Wikis
Auf der Website ist das **Steingymnasium Frontend Wiki** integriert. Dieses dient als interne Knowledgebase für Lehrkräfte.
### 1. Wiki aufrufen
Das Wiki ist im Frontend der Website auf einer geschützten Seite (z.B. `/wiki/` oder `/schulinterne-knowledgebase/`) eingebettet. Du musst eingeloggt sein und Redakteur-Rechte besitzen, um Inhalte zu sehen und zu bearbeiten.
### 2. Neuen Wiki-Eintrag erstellen
1. Klicke im Wiki-Interface auf den Button **+ Neue Seite**.
2. Gib einen aussagekräftigen **Titel** ein.
3. Wähle bei Bedarf eine **übergeordnete Wiki-Seite** (um eine Ordnerstruktur aufzubauen).
4. Füge **Tags** (kommagetrennt) hinzu, um die Auffindbarkeit zu verbessern.
5. Schreibe deinen Text im Editor-Feld.
6. Klicke auf **Speichern**.
### 3. Verweise erstellen (Cross-Referencing)
Du kannst in einem Wiki-Beitrag direkt auf einen anderen Wiki-Beitrag verweisen, indem du folgenden Shortcode im Editor verwendest:
`[wiki id="123"]` (wobei 123 die ID der Ziel-Wiki-Seite ist). Dadurch wird automatisch ein korrekter Link mit dem Titel der Zielseite erzeugt.
+40
@@ -0,0 +1,40 @@
# 🚀 Go-Live Day To-Do-Liste
Diese Liste beschreibt die genauen technischen Schritte, die am Tag des Livegangs in der vorgegebenen Reihenfolge durchgeführt werden müssen, um die neue Website unter der Hauptdomain `freiherr-vom-stein-gymnasium.de` live zu schalten.
## 🛠 Ablaufplan für den Go-Live Tag
### 1. Backups erstellen (Sicherheitsnetz)
* [ ] **Backup der alten Seite (@old):** Backup von Datenbank und `wp-content/uploads` erstellen.
* [ ] **Backup der neuen Seite (@new):** Komplettes Backup der neuen WordPress-Installation (`wordpress_02`) erstellen.
### 2. Domain & Routing bei Strato einrichten
* [ ] **Hauptdomain umleiten:** Im Strato-Kundenbereich die Domain `freiherr-vom-stein-gymnasium.de` auf den Pfad `/mnt/web224/b0/78/511016978/htdocs/STRATO-apps/wordpress_02/app` (die neue Seite) umleiten.
* [ ] **SSL-Zertifikat aktivieren:** Ein SSL-Zertifikat (Let's Encrypt) für `freiherr-vom-stein-gymnasium.de` über das Strato-Backend anfordern und der Domain zuweisen. (Derzeit zeigt HTTPS einen SSL-Fehler).
* [ ] **Weiterleitung der alten Domain:** Die Domain `steingymnasium.de` ebenfalls auf das Verzeichnis `wordpress_02/app` umleiten und sicherstellen, dass 301-Weiterleitungen auf die neue Domain aktiv sind.
### 3. URL-Umschreibung in der WordPress-Datenbank
* [ ] **URL-Changer Plugin nutzen:** Da die Website von `https://freiherr-vom-stein-spandau.de` auf `https://freiherr-vom-stein-gymnasium.de` umzieht, müssen die URLs in der Datenbank angepasst werden.
* Verwende dazu das installierte Plugin **Steingymnasium URL Changer**, um die URLs sicher unter Berücksichtigung von serialisierten Daten in `options` und `postmeta` zu ersetzen.
* *Alternativ via WP-CLI:*
```bash
wp @new search-replace "https://freiherr-vom-stein-spandau.de" "https://freiherr-vom-stein-gymnasium.de" --all-tables
```
### 4. Microsoft 365 SSO (Entra ID) Anpassung
* [ ] **Redirect URI im Azure Portal anpassen:**
* Melde dich im Azure/Entra ID Portal als Administrator an.
* Gehe zur App-Registrierung für das M365-SSO-Plugin.
* Ändere die erlaubte Redirect-URI (Umleitungs-URI) auf:
`https://freiherr-vom-stein-gymnasium.de/wp-login.php`
* Teste den Login im Inkognito-Modus.
### 5. DNS & Caching
* [ ] **Permalinks neu generieren:** Im WordPress-Backend unter *Einstellungen -> Permalinks* auf "Änderungen speichern" klicken, um die `.htaccess` neu zu schreiben.
* [ ] **Cache leeren:** Falls Caching-Plugins aktiv sind, den gesamten Cache leeren.
* [ ] **DNS-Auflösung prüfen:** Prüfen, ob die neue Domain von extern sowie intern über die Fritzbox/AdGuard (Hairpin DNS) korrekt auflöst.
### 6. Funktionstest (Go-Live Smoke Tests)
* [ ] Hauptseite über HTTPS aufrufen und prüfen, ob alle CSS/JS-Ressourcen ohne Mixed-Content-Warnungen laden.
* [ ] Den Microsoft-Login für Lehrkräfte und Schüler testen.
* [ ] Testen der Links im Footer (Impressum, Datenschutzerklärung).
+24
@@ -0,0 +1,24 @@
# Willkommen im Schoolwebsite-Wiki!
Dieses Wiki enthält alle Dokumentationen, Anleitungen und To-Do-Listen für den Relaunch und Go-Live der neuen Schulwebsite des Freiherr-vom-Stein-Gymnasiums Spandau.
## 📌 Inhalt des Wikis
### 🚀 Vorbereitung & Livegang
* [[Go-Live Day To-Do-Liste|Go-Live-Day-Todo]] — Die Schritt-für-Schritt-Anleitung für den Tag des Livegangs.
* [[Go-Live Walkthrough & Checkliste|Walkthrough-Documentation]] — Liste aller Aufgaben und inhaltlichen Korrekturen bis zum Livegang.
### 📚 Anleitungen & Handbücher
* [[Handbuch für Fachbereiche & Editoren|Anleitungen-Fachbereiche]] — Anleitung zur Bearbeitung der Fachbereichsseiten und Nutzung des Wikis.
### 🔌 Custom WordPress Plugins
Wir haben für das Stein-Gymnasium spezialisierte Plugins entwickelt bzw. angepasst. Hier findest du die Dokumentation zu jedem Plugin:
1. [[M365 Single Sign-On (SSO)|Plugin-SSO]] — Login für Lehrer und Schüler über Entra ID und Synchronisierung.
2. [[Event Manager|Plugin-Events]] — Ausflugs- und Veranstaltungsplanung mit Schüler- und Begleitungszuweisung.
3. [[Elternschafts-Organisator|Plugin-Elternschaft]] — Klassenlisten, GEV-Einladungen, Mandate und digitale Wahlen.
4. [[Frontend-Wiki|Plugin-Wiki]] — Integrierte Knowledgebase direkt auf der Website.
5. [[Schoolfest-Organisator|Plugin-Schoolfest]] — Bedarfs- und Standbesetzungsplaner für Schulfeste.
6. [[URL Changer|Plugin-UrlChanger]] — Sichere URL-Umschreibung für die Datenbank bei Domain-Umzügen.
---
> 💡 *Dieses Wiki wird automatisch gepflegt. Änderungen können über das Git-Repository vorgenommen werden.*
+40
@@ -0,0 +1,40 @@
# 🔌 Stein-Gymnasium Elternschaft
Dieses WordPress-Plugin unterstützt den Gesamtelternvorstand bei der Organisation der Elternschaft. Es deckt drei große Bereiche ab:
1. **Klassenlisten** Erfassung der Eltern je Klasse über die Klassenelternsprecher (Magic-Links).
2. **Gesamtelternversammlung** Termine mit Tagesordnung, Einladung mit Kalendereintrag, digitale Anwesenheit und Anwesenheitsliste.
3. **Wahlen** Ämter mit Legislaturperioden, Kandidaturen per Link, digitale Stimmabgabe, Wahlprotokoll und eine öffentliche Übersicht der gewählten Rollen.
Das Plugin kann die Klassen und Elternsprecher-Konfiguration aus dem **Schoolfest-Plugin** übernehmen (Import-Funktion).
## 🛠 Installation & Aktivierung
1. Lade den Plugin-Ordner `steingymnasium-elternschaft` in das Verzeichnis `wp-content/plugins/` hoch.
2. Aktiviere das Plugin im WordPress-Backend unter **Plugins**.
3. Beim erstmaligen Aktivieren werden automatisch alle benötigten Datenbanktabellen sowie Standard-E-Mail-Vorlagen angelegt.
4. Lege eine WordPress-Seite an (empfohlener Slug `/elternschaft/`) und füge dort den Shortcode `[ep_frontend]` ein. Über diese Seite laufen **alle** Magic-Links.
5. Trage unter **Elternschaft → Einstellungen** die genaue URL dieser Seite ein (Feld „Frontend-Seiten-URL“).
## 📋 Funktionsbereiche
### 1. Klassenlisten (Eltern erfassen)
* **Benachrichtigen:** Der Gesamtelternvorstand verschickt an die Elternsprecher ausgewählter Klassen eine E-Mail mit den Links.
* Die Elternsprecher leiten den **Eltern-Registrierungslink** an ihre Klasse weiter.
* Eltern tragen sich über das Formular ein und erhalten einen persönlichen Bearbeitungs-Link.
* Im **Dashboard** sieht der Vorstand je Klasse die Anmeldungszahlen und kann Listen auslesen.
### 2. Gesamtelternversammlung
* **Versammlung anlegen:** Erfasse Titel, Ort, Beginn/Ende und die Tagesordnung (Agenda).
* Status: *Geplant* -> *Findet statt* (am Versammlungstag) -> *Abgeschlossen*.
* **Einladungen versenden:** Verschickt die Einladungen mit Tagesordnung und **persönlichem Magic-Link** an alle Elternsprecher. Ein `.ics` Kalendereintrag ist als Anhang dabei.
* **Anwesenheit:** Elternsprecher bestätigen ihre Anwesenheit vorab oder digital am Tag der Versammlung. Eine Druckansicht für Unterschriften vor Ort ist integriert.
### 3. Wahlen
* **Ämter & Mandate:** Erfasse Ämter (z.B. "Gesamtelternsprecher*in") mit Sitzen und Legislaturdauer. Das Plugin markiert automatisch Ämter, die neu besetzt werden müssen.
* **Wahlen organisieren:** Wahl anlegen, zu besetzende Ämter wählen, Wahlphase steuern (*Einrichtung* -> *Kandidatur läuft* -> *Abstimmung läuft* -> *Abgeschlossen*).
* **Kandidaturen:** Kandidaten können sich über einen speziellen Link selbst aufstellen und vorstellen.
* **Stimmabgabe:** Am Wahltag geben bestätigte anwesende Elternvertreter ihre Stimmen digital ab (1 Stimme pro Amt/Sitz).
* **Protokoll & Abschluss:** Ein druckfertiges Wahlprotokoll wird erzeugt. Beim Abschließen der Wahl werden Gewinner automatisch als aktive Mandate eingetragen.
### 🔄 Schuljahreswechsel
Unter **Elternschaft → Schuljahreswechsel** können am Ende des Schuljahres alle Klassenstufen um 1 erhöht werden. Die Abschlussklassen werden archiviert und die verbleibenden Klassen behalten ihre Magic-Links.
+50
@@ -0,0 +1,50 @@
# 🔌 Stein-Gymnasium Event Manager
Dieses WordPress-Plugin dient der Verwaltung von schulischen Veranstaltungen. Es richtet sich primär an das Orgateam zur Planung sowie an die Begleitungen (Lehrkräfte) zur Information und Rückmeldung.
## 🛠 Installation & Aktivierung
1. Lade den Plugin-Ordner `steingymnasium-events` in das Verzeichnis `wp-content/plugins/` hoch.
2. Aktiviere das Plugin im WordPress-Backend unter "Plugins".
3. **Wichtig:** Beim erstmaligen Aktivieren werden die neuen Rollen (z.B. "Orga-Team") und deren Berechtigungen angelegt. Falls die Rolle nicht sofort auftaucht, das Plugin kurz deaktivieren und direkt wieder aktivieren.
## 👥 Benutzerrollen & Berechtigungen
Das System unterscheidet primär zwischen Planern und Teilnehmern/Begleitern:
* **Orga-Team & Administratoren:**
* Haben vollen Zugriff auf das Event-Dashboard.
* Können neue Events anlegen, bearbeiten, löschen und archivieren.
* Können den Status eines Events verändern.
* **Alle anderen Benutzer (z.B. Lehrkräfte / Schüler):**
* Haben Leserechte auf die Events (Details ansehen).
* Können nach einer Veranstaltung Feedback hinterlassen.
* Sie haben **keinen** Zugriff auf das Dashboard und können Events nicht bearbeiten.
## 📊 Das Event-Dashboard (nur für Orgateam)
Unter dem Menüpunkt **Events (Orgateam) -> Dashboard** befindet sich die Steuerzentrale.
* **Jahrgangsbelegung:** Oben im Dashboard wird automatisch angezeigt, wie viele Schüler pro Jahrgang (Klassenstufe) an der Schule verfügbar sind und wie viele davon aktuell in noch nicht abgeschlossenen Events "verplant" (Belegt) sind. Dies hilft, Überbuchungen oder die Vernachlässigung bestimmter Klassenstufen zu vermeiden.
* **Tabelle:** Zeigt alle aktuellen Veranstaltungen an.
* **Filter:** Über das Textfeld über der Tabelle kann live nach Titel, Ort oder Status gesucht werden.
* **Archiv:** Über den Button "Archiv" kann zwischen aktiven und abgeschlossenen Events umgeschaltet werden.
## 📝 Events anlegen und bearbeiten
Wenn ein neues Event erstellt wird, können neben dem Beschreibungstext (Editor) folgende Meta-Daten gepflegt werden:
* **Status:**
* *Angelegt*: Erster Entwurf.
* *In Bearbeitung*: Die Planung läuft.
* *Festgelegt*: Das Event steht. **Achtung:** Dieser Status lässt sich nur speichern, wenn mindestens eine Gruppe mit Teilnehmern und eine Begleitung zugewiesen wurde!
* *Abgeschlossen*: Das Event wandert ins Archiv und die Schüler gelten für neue Events wieder als "Verfügbar".
* **Ort, Zeit & Preis:** Grundlegende Rahmendaten.
* **Dateianhang:** Es kann eine Datei (z.B. PDF mit Elterninformationen) hochgeladen oder aus der Mediathek ausgewählt werden.
* **Event-Gruppen:** Statt starrer Schulklassen werden "Gruppen" für das Event angelegt. Jede Gruppe kann individuell benannt werden und aus einer Liste von Schülern (die über das SSO-Plugin synchronisiert wurden) können die teilnehmenden Kinder per Checkbox zugewiesen werden.
* **Weiterführende Links:** Ein Link pro Zeile (z.B. zur Webseite des Ausflugsziels).
* **Begleitungen:** Lehrkräfte, die das Event begleiten, können aus allen Systemnutzern ausgewählt werden.
* **Benachrichtigung:** Mit Setzen des Häkchens unten wird beim Speichern automatisch eine E-Mail an alle Begleitungen und eingetragenen Elternsprecher versendet.
## 🔗 Magic Link & Feedback
Wenn die Benachrichtigungs-Mail an Begleitungen verschickt wird, enthält diese einen Link direkt in das WordPress-Backend.
Dort sehen die Begleitungen eine übersichtliche "Details & Feedback"-Seite (ohne Editier-Möglichkeiten).
Auf dieser Seite können sie alle relevanten Daten abrufen (inklusive Gruppenlisten und Dateianhängen) und nach dem Ausflug über ein Textfeld direkt **Feedback** an das Orgateam senden. Das Feedback wird mit Namen und Zeitstempel direkt im Event protokolliert.
+44
@@ -0,0 +1,44 @@
# 🔌 SG M365 SSO (Single Sign-On)
Dieses WordPress-Plugin ermöglicht es Schülern und Lehrern, sich mit ihren bestehenden Microsoft 365 (Entra ID) Zugangsdaten des Stein-Gymnasiums auf der Website einzuloggen.
Gleichzeitig synchronisiert das Plugin beim Login die wichtigsten Nutzerdaten, damit andere Plugins (wie der *Stein-Gymnasium Event Manager*) auf diese zugreifen können.
## 🛠 Einrichtung im Backend
1. Nach Aktivierung des Plugins navigiere im WordPress-Backend zu **Einstellungen -> M365 SSO**.
2. **SSO Aktivieren:** Setze den Haken, um den Microsoft-Login-Button auf der Standard-WordPress-Login-Seite (`wp-login.php`) anzuzeigen.
3. Trage die Anmeldedaten für die API ein, die im Azure / Entra ID Portal (App Registrations) erzeugt wurden:
* **Tenant ID**
* **Client ID**
* **Client Secret**
4. Klicke auf "Änderungen speichern".
## 🔄 Login-Prozess & Rollen-Zuweisung
1. Der Nutzer klickt auf der Login-Seite auf den blauen Button "Mit Microsoft 365 anmelden".
2. Er wird zu Microsoft weitergeleitet, loggt sich dort ein und wird zurück zur Website geschickt.
3. **Sicherheitscheck:** Das Plugin prüft, ob die E-Mail-Adresse auf `@steingymnasium.de` endet. Andere Adressen werden blockiert.
4. **Account-Erstellung:** Falls der Nutzer noch keinen Account in WordPress hat, wird dieser vollautomatisch im Hintergrund erstellt.
5. **Rollen-Zuweisung:** Das Plugin analysiert die E-Mail-Adresse, um automatisch zwischen Schülern und Lehrern zu unterscheiden:
* Endet der vordere Teil der E-Mail auf ein Muster, das eindeutig auf Lehrer hinweist (genau 1 Buchstabe vor einem Punkt, z.B. `m.mustermann@`), wird der User als **Redakteur (Editor)** angelegt.
* Alle anderen (z.B. `max.mustermann@`) werden als **Abonnent (Subscriber)** angelegt.
## 📊 Metadaten-Synchronisierung (Klassenstufe / Position)
Ein wichtiges Feature für das Event-Modul ist die automatische Übernahme der Klassenstufe aus Microsoft 365.
* Während des Logins liest das Plugin den Microsoft-Token des Nutzers aus.
* Es sucht nach den Feldern `jobTitle`, `position` oder `title`. In Microsoft ist hier z.B. "Klassenstufe 12" hinterlegt.
* Dieser Wert wird in WordPress in die sogenannten "User Meta" unter dem Schlüssel `position` geschrieben.
* Loggt sich der Nutzer später erneut ein und seine Klasse hat sich in MS geändert, wird der Wert in WordPress automatisch aktualisiert.
## ⚡ Manueller Sync (Graph API)
Um nicht darauf warten zu müssen, dass sich alle Nutzer mindestens einmalig einloggen (um im WordPress-System angelegt zu werden), bietet das Plugin einen manuellen Sync.
1. Gehe in die Plugin-Einstellungen im WordPress Backend.
2. Klicke unten auf **"Jetzt Nutzer aus M365 synchronisieren"**.
3. Das Plugin verbindet sich mit der Microsoft Graph API, ruft alle Nutzer der Domain `@steingymnasium.de` ab, legt fehlende Accounts in WordPress an (inkl. Rolle) und aktualisiert bei bestehenden Accounts die `position` (Klassenstufe).
4. Du siehst danach eine Erfolgsmeldung mit der genauen Anzahl der verarbeiteten Accounts.
**Voraussetzung für den Sync:**
Die in den Einstellungen hinterlegte Azure App muss zwingend die Berechtigung **User.Read.All** besitzen. Dies muss als *Anwendungsberechtigung (Application Permission)* konfiguriert und von einem Administrator im Azure-Portal bestätigt (Admin Consent) worden sein.
+19
@@ -0,0 +1,19 @@
# 🔌 Steingymnasium Schoolfest Plugin
Dieses Plugin dient der Organisation von Bedarfen und Standbesetzungen für Schulfeste. Es ermöglicht es dem Elternvorstand oder Orgateam, Bedarfe (Essen, Getränke, Hilfen) auszuschreiben und Eltern die Möglichkeit zu geben, sich direkt einzutragen.
## 📊 Tabellenstruktur in der Datenbank
Das Plugin arbeitet mit fünf Tabellen:
1. `wp_sfo_classes` Klassenstufen, Buchstaben, Elternsprecher-E-Mails und Magic Tokens.
2. `wp_sfo_global_requirements` Globale Bedarfs-Sollwerte (z.B. "Kartoffelsalat", "30 Portionen").
3. `wp_sfo_stands` Feststände mit Start- und Endzeiten.
4. `wp_sfo_requirements` Klassen-spezifische Bedarfe (Essen, Trinken, Schichten).
5. `wp_sfo_assignments` Zuweisungen (wer bringt was mit / wer macht welche Schicht).
## 📋 Funktionsweise
* **Bedarfsermittlung:** Der Admin legt globale Bedarfe fest und ordnet sie Klassen zu.
* **Schichtplanung:** Stände und Schichtzeiten werden erfasst und den Klassen zur Besetzung zugeteilt.
* **Eltern-Eintragung:** Eltern können sich über Frontend-Seiten für bestimmte Aufgaben oder Sachspenden eintragen. Die Zuweisungen werden in `wp_sfo_assignments` als `confirmed` gespeichert.
* **Daten-Export/Import:** Das Plugin bietet Schnittstellen, um Klassenlisten und Elternkontakte in das *Stein-Gymnasium Elternschafts-Plugin* zu exportieren.
+20
@@ -0,0 +1,20 @@
# 🔌 Steingymnasium URL Changer
Dieses Plugin wurde speziell entwickelt, um URL-Änderungen in der WordPress-Datenbank sicher und unkompliziert durchzuführen. Dies ist besonders nützlich, wenn eine Website von einer Testdomain (wie `freiherr-vom-stein-spandau.de`) auf die Live-Domain (wie `freiherr-vom-stein-gymnasium.de`) umgezogen wird.
## ⚠️ Warum ein spezielles Plugin?
Standardmäßige Suchen-und-Ersetzen-Methoden (z.B. direkt in SQL) beschädigen in der Regel **serialisierte PHP-Daten** in den Tabellen `wp_options` und `wp_postmeta`. Themes, Menüs, Widgets und Page Builder speichern ihre Einstellungen oft serialisiert (z.B. `a:2:{s:3:"url";s:38:"https://freiherr-vom-stein-spandau.de";...}`). Wenn sich die Länge der URL ändert, stimmt die Längenangabe im serialisierten String nicht mehr und WordPress ignoriert die Daten (was zum Verlust von Menüs oder Widgets führt).
Der **Steingymnasium URL Changer** löst dies, indem er:
1. PHP-serialisierte Strings in der Datenbank identifiziert.
2. Diese deserialisiert.
3. Die URLs im PHP-Array/Objekt ersetzt.
4. Das Array wieder korrekt serialisiert und in die Datenbank schreibt.
## 🚀 Nutzung am Go-Live Tag
Das Plugin kann direkt im WordPress-Backend unter **Werkzeuge -> URL Changer** aufgerufen oder über WP-CLI angesprochen werden.
* **Quelle:** `https://freiherr-vom-stein-spandau.de`
* **Ziel:** `https://freiherr-vom-stein-gymnasium.de`
* **Aktion:** Durchlauf starten. Das Plugin meldet die Anzahl der korrigierten Tabellenzeilen.
+28
@@ -0,0 +1,28 @@
# 🔌 Steingymnasium Frontend Wiki
Dieses Plugin bietet eine leichtgewichtige Frontend-Verwaltung von Wiki-Seiten für eingeloggte Benutzer mit Schreibberechtigungen (Redakteure/Editoren).
## 🛠 Struktur und CPT
Das Plugin registriert einen Custom Post Type (CPT) `school_wiki` und eine nicht-hierarchische Taxonomie `wiki_tag`.
* **Slug:** `/wiki/`
* **Supports:** Title, Editor, Author, Page-Attributes (für Parent-Child Hierarchien), Revisions.
* **Rest API:** Vollständig aktiviert (`show_in_rest = true`) mit Rest Base `school_wiki` für die Frontend-Schnittstelle.
## 🖥 Frontend Integration
Die Integration erfolgt über den Shortcode:
`[school_wiki_frontend]`
Dieser sollte auf einer geschützten Seite (z.B. unter dem Slug `/schulinterne-knowledgebase/`) platziert werden.
### Features der Frontend-Oberfläche:
* **Sidebar:** Auflistung aller Wiki-Seiten als Baumstruktur (Parent-Child).
* **Suche:** Echtzeit-Suche im Wiki über die Titel.
* **Editor:** Integration des nativen WordPress Gutenberg/Classic Editors im Frontend für schnelles Speichern ohne Backend-Zugriff.
* **Tagging:** Hinzufügen und Zuweisen von Tags direkt beim Erstellen/Bearbeiten.
## 🔗 Querverweise (Cross-Referencing)
Ein weiteres praktisches Feature ist der Querverweis-Shortcode:
`[wiki id="POST_ID"]`
Wenn dieser Shortcode im Text verwendet wird, wandelt das Plugin ihn im Frontend automatisch in einen Link zur entsprechenden Wiki-Seite um und lädt dynamisch den aktuellen Titel des Posts als Linktext.
+56
@@ -0,0 +1,56 @@
# 📋 Go-Live Walkthrough & Checkliste
Diese Checkliste listet alle inhaltlichen und strukturellen Mängel auf, die **vor** dem Livegang behoben werden müssen. Die Mängel wurden bei einem automatisierten HTTPS- und Datenbank-Scan ermittelt.
## 🔍 Offene inhaltliche Aufgaben
### 1. Trassierte Menüeinträge reparieren (Dringend)
* [ ] **Musik-Seite reparieren (ID 74):** Diese Seite ist im Hauptmenü (Hauptmenü) aktiv verlinkt, ihr Slug in der Datenbank lautet jedoch `__trashed` (obwohl sie veröffentlicht ist).
* **Aktion:** Den Slug der Seite mit ID 74 im WordPress-Backend von `__trashed` wieder in `musik` ändern.
### 2. Doppelte und verwaiste Seiten konsolidieren (Dringend)
Durch den Import existieren einige Seiten mehrfach. Oft zeigt das Menü auf eine leere Seite, während die Seite mit Inhalt nicht im Menü ist.
* [ ] **Latein-Seiten (ID 138 & ID 933):**
* Das Menü zeigt auf ID 138 (liegt unter Lehrkräfte/kollegium, hat **0 Zeichen Inhalt**).
* Es existiert ID 933 (liegt im Root, hat **2457 Zeichen Inhalt**).
* **Aktion:** Den Inhalt von ID 933 kopieren oder das Menü auf ID 933 umstellen. Die leere Seite ID 138 löschen.
* [ ] **Spanisch-Seiten (ID 150, ID 962 & ID 976):**
* Das Menü zeigt auf ID 150 (liegt unter Lehrkräfte/kollegium, hat **0 Zeichen Inhalt**).
* Es existieren ID 962 (**1985 Zeichen**) und ID 976 (**1942 Zeichen** mit Slug `spanisch-2`).
* **Aktion:** Inhalte sichten, konsolidieren und das Menü auf die richtige Seite mit Inhalt umstellen. Verwaiste leere Seiten löschen.
* [ ] **Ethik-Seiten (ID 95 & ID 928):**
* ID 95 (in Menü unter Lehrkräfte, **2304 Zeichen**).
* ID 928 (nicht in Menü, **3931 Zeichen**).
* **Aktion:** Inhalte vergleichen, den aktuelleren Inhalt (wahrscheinlich ID 928) auf die im Menü verlinkte Seite übertragen.
* [ ] **Hausordnung-Seiten (ID 147 & ID 919):**
* ID 147 (in Menü unter Über die Schule, **2192 Zeichen** - enthält Hausordnungs-PDF + Notfallordner).
* ID 919 (nicht in Menü, enthält nur Hausordnungs-PDF).
* **Aktion:** ID 919 löschen/weiterleiten, da ID 147 bereits die vollständigere Version ist.
### 3. Leere Seiten befüllen (Inhalt fehlt vollständig)
Folgende Seiten existieren und sind teilweise im Menü, haben jedoch **keinen** Inhalt (0 Zeichen):
* [ ] **Lehrkräfte** (ID 222, `/ueber-die-schule/kollegium/`) — *In Hauptmenü verlinkt!*
* [ ] **Abitur** (ID 174, `/organisatorisches/abitur/`) — *In Hauptmenü verlinkt!*
* [ ] **Bücherliste** (ID 178, `/organisatorisches/buecherliste/`) — *In Hauptmenü verlinkt!*
* [ ] **Klausurplan Q1/Q2** (ID 297, `/organisatorisches/abitur/klausurplan-q1-q2/`) — *In Hauptmenü verlinkt!*
* [ ] **Abiturplan** (ID 301, `/organisatorisches/abitur/abiturplan/`) — *In Hauptmenü verlinkt!*
* [ ] **Geschichte** (ID 331, `/kollegium/geschichte/`) — *In Hauptmenü verlinkt!*
* [ ] **Über die Schule** (ID 97, `/ueber-die-schule/`) — Elternseite ohne direkten Inhalt.
* [ ] **Organisatorisches** (ID 106, `/organisatorisches/`) — Elternseite ohne direkten Inhalt.
* [ ] **Gesellschaftswissenschaften** (ID 121, `/gesellschaftswissenschaften/`) — Elternseite ohne direkten Inhalt.
* [ ] **Naturwissenschaftlich-mathematisches Profil** (ID 347, `/naturwissenschaftlich-mathematisches-profil/`)
* [ ] **Wissensdatenbank** (ID 866, `/knowledge-base/`)
### 4. Seiten mit extrem wenig Inhalt (Prüfen & Erweitern)
Diese Seiten enthalten weniger als 150 Zeichen (oft nur Platzhalter oder Shortcodes):
* [ ] **Aktuelles** (ID 33, `/aktuelles/` - 16 Chars) - Prüfen, ob hier ein Blog-Feed o.ä. angezeigt wird.
* [ ] **Neuigkeiten** (ID 85, `/neuigkeiten/` - 75 Chars) - In Hauptmenü!
* [ ] **Termine** (ID 252, `/aktuelles/termine/` - 42 Chars) - Enthält vermutlich nur den ICS-Shortcode. Korrektheit der Terminanzeige prüfen.
* [ ] **Schulprogramm** (ID 263, `/schulprofil/schulprogramm/` - 35 Chars)
* [ ] **Schulfest** (ID 703, `/schulfest/` - 90 Chars)
* [ ] **Schulinterne Knowledgebase** (ID 890, `/schulinterne-knowledgebase/` - 22 Chars)
* [ ] **Projekttageübersicht** (ID 1003, `/projekttageuebersicht/` - 22 Chars)
---
> 💡 *Tipp:* Nutze WP-CLI zum schnellen Bearbeiten oder Sichten:
> `wp @new post edit <ID>`