new file: olm-login.php

This commit is contained in:
Sven Steinert
2026-05-27 14:17:22 +02:00
parent 1d4cf6e727
commit e99acdce47
25 changed files with 36226 additions and 630 deletions

View File

@@ -188,8 +188,11 @@ Shortcodes:
`[kb_docs]` bindet die Dokumentation in eine normale WordPress-Seite ein.
Die Ausgabe ist als Doku-App aufgebaut: Startseite rechts, persistente Sidebar links. Die Sidebar zeigt alle Produkte und fuer die aktive Version alle Seiten, sodass man direkt von der Portalseite in die konkrete Doku springen kann. Die Version wird nicht in der Sidebar gewechselt, sondern per Dropdown im Kopf der jeweiligen Dokumentationsseite.
Die Dokumentations-Startseite ist im Backend anpassbar. Sie enthaelt einen frei pflegbaren Anleitungstext zum Umgang mit der Dokumentation und einen Produktupdate-Bereich. Der Produktupdate-Bereich liest wahlweise einen konfigurierbaren RSS-/XML-Feed oder eine REST-/JSON-API aus und zeigt die neuesten Updates mit Produktname, Version, Datum und Changelog. Quelle, URL, Anzahl der Updates, Eintrag-/Listenpfad und die Feldpfade fuer Produktname, Version, Datum und Changelog sind im Backend frei definierbar.
Im Backend gibt es einen Testbutton fuer die konfigurierte Produktupdate-Quelle. Der Test zeigt HTTP-Status, Content-Type und einen gekuerzten Roh-Response an, damit die Feldzuordnung gegen die echte API-Antwort geprueft werden kann.
Die Dokumentations-Startseite ist im Backend anpassbar. Sie enthaelt einen frei pflegbaren Anleitungstext zum Umgang mit der Dokumentation und einen Produktupdate-Bereich. Produktupdates werden nicht bei jedem Seitenaufruf live geladen, sondern per OLM-Changelog-Sync in WordPress gespeichert und danach aus der Datenbank gelesen.
Der OLM-Changelog-Sync bildet die bestehende Python-Logik nach: `POST /login`, danach paginiert `/api/rest/v1/product?page=N&size=1`, sammelt `downloads[].id` und liest pro Download `/api/rest/v1/download/field/{id}?page=N&size=1`. Importiert werden nur Eintraege mit `qa=true`, `publishedAt`, veroeffentlichtem Produkt und nicht ignorierter `productNo`. Der Zeitraum und die ignorierten OLM-Nummern sind im Backend konfigurierbar.
Der Changelog-Sync laeuft manuell ueber die Synchronisationsseite und automatisch mit dem bestehenden Synchronisationsintervall. `Sync All` fuehrt sowohl den GitLab-Doku-Import als auch den OLM-Changelog-Sync aus.
Unter `Produkte` koennen importierte GitLab-Produkte einem gemeinsamen Frontend-Produkt zugeordnet werden. Damit lassen sich mehrere Teildokumentationen, z. B. App, Modul und Exporter, als ein Produkt in der Dokumentation anzeigen. Pro Produkt/Modul kann ausserdem eine Kategorie fuer die Frontend-Gruppierung gepflegt werden.
Die Sidebar zeigt die aktive Seitennavigation immer oben separat an. Die komplette Produktliste ist darunter nach Kategorien gruppiert, damit Nutzer nicht in langen Produktlisten zur aktuellen Seitennavigation scrollen muessen.
## 10. Admin-Einstellungen
@@ -203,7 +206,7 @@ Knowledgebase
Einstellungen
```
Unter `Produkte` koennen importierte Produkte verwaltet werden. Admins koennen Namen und Slugs korrigieren oder ein fehlerhaft importiertes Produkt inklusive der zugehoerigen Doku-Seiten in den Papierkorb verschieben.
Unter `Produkte` koennen importierte Produkte in einer Tabelle gesammelt verwaltet und mit einem `Save all`-Button gespeichert werden. Admins koennen Frontend-Produkt, Teildokumentation und Kategorie pflegen oder ausgewaehlte fehlerhafte Produkte inklusive der zugehoerigen Doku-Seiten in den Papierkorb verschieben.
Einstellungen:
@@ -219,8 +222,9 @@ Einstellungen:
- Frontend-Design
- Optionale eigene `theme.css`
- Dokumentations-Startseite mit Anleitungstext
- Produktupdate-Quelle als RSS/XML oder REST/JSON inkl. frei definierbarer Feldzuordnung fuer Produktname, Version, Datum und Changelog
- Testbutton fuer die Produktupdate-Quelle mit Anzeige der Rohantwort
- OLM-Zugangsdaten fuer den Changelog-Sync
- OLM-Changelog-Zeitraum und ignorierte OLM-Nummern
- Produktmanagement mit Frontend-Produkt, Teildokumentation und Kategorie
Es gibt keine Renderer-Modus-Einstellung mehr. Markdown wird direkt im Plugin verarbeitet.
@@ -251,9 +255,10 @@ Es gibt keine Renderer-Modus-Einstellung mehr. Markdown wird direkt im Plugin ve
- `/docs/` zeigt die Dokumentationsuebersicht.
- `[kb_docs]` zeigt eine Startseite mit persistenter Produkt- und Seitennavigation sowie Versionswechsel per Dropdown in der Dokumentationsseite.
- Die Dokumentations-Startseite zeigt den im Backend gepflegten Anleitungstext.
- Die Dokumentations-Startseite zeigt die neuesten Produktupdates aus einem konfigurierbaren RSS-/XML-Feed oder REST-/JSON-Endpunkt.
- Die XML- oder JSON-Felder fuer Produktname, Version, Datum und Changelog koennen im Backend frei zugeordnet werden.
- Die konfigurierte Produktupdate-Quelle kann im Backend getestet werden; Status, Content-Type und Rohantwort werden angezeigt.
- Die Dokumentations-Startseite zeigt die per OLM-Changelog-Sync gespeicherten Produktupdates.
- OLM-Changelog-Daten koennen manuell und per bestehendem Sync-Intervall aktualisiert werden.
- Mehrere importierte GitLab-Produkte koennen im Frontend als ein Produkt zusammengefasst werden.
- Produkte koennen Kategorien zugeordnet werden.
- `/docs/{product}/{version}/` zeigt die Startseite.
- Im Backend koennen Produkte bei fehlerhaften Importen verwaltet und entfernt werden.
- Synchronisation dupliziert unveraenderte Seiten nicht.