WP Manifestindependent plugin directory
manifest / content / wordpress-cms

Demo for THM: CMS

Dieses Projekt startet eine vollständige WordPress-Umgebung mit Datenbank und Datenbankverwaltung – alles lokal über Docker. Es wurde im Rahmen einer Prüfungsleistung entwickelt und bildet das CMS-Konzept für eine Online-Zeitschrift mit mehreren Autoren, Redakteuren und einem Administrator ab.

by Karry, Martin · github.com/roussel9/wordpress-cms · website

1stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/roussel9/wordpress-cms/archive/refs/heads/master.zip

Readme

WordPress CMS – Online-Zeitschrift (Heim · Garten · Elektronik)

Dieses Projekt startet eine vollständige WordPress-Umgebung mit Datenbank und Datenbankverwaltung – alles lokal über Docker. Es wurde im Rahmen einer Prüfungsleistung entwickelt und bildet das CMS-Konzept für eine Online-Zeitschrift mit mehreren Autoren, Redakteuren und einem Administrator ab.


Projektstruktur

wordpress/
├── docker-compose.yml        # Startet alle Dienste (WordPress, MariaDB, Adminer)
├── wp-content/
│   ├── plugins/
│   │            
│   ├── themes/               # Aktive Themes
│   └── uploads/              # Hochgeladene Medien
└── README.md

Voraussetzungen

Folgendes muss auf dem Rechner installiert sein:


Projekt starten

# In den Projektordner wechseln
cd wordpress

# Alle Dienste starten
docker compose up

Beim ersten Start werden alle Docker-Images automatisch heruntergeladen. Dies kann einige Minuten dauern.


Dienste & Zugänge

Dienst URL Beschreibung
WordPress http://localhost:8080 Die eigentliche Website / Backend
Adminer http://localhost:8081 Datenbankverwaltung im Browser

Adminer Login-Daten

Feld Wert
Server db
Benutzername wordpress
Passwort wordpress
Datenbank wordpress

👥 Benutzerrollen & Berechtigungskonzept

Das Projekt setzt ein Berechtigungskonzept mit drei Rollen und drei Themenbereichen um.

Themenbereiche (WordPress-Kategorien)

  • Heim
  • Garten
  • Elektronik

Rollen

Rolle Kann Kann nicht
Autor Artikel schreiben, eigene Entwürfe einreichen Artikel veröffentlichen, fremde Artikel bearbeiten
Redakteur Artikel prüfen und veröffentlichen (nur eigener Bereich) Benutzer verwalten, Plugins installieren
Administrator Alles – (nur bei Sonderfällen aktiv)

Angelegte Testbenutzer

Benutzername Rolle Bereich
autor-heim Autor Heim
autor-garten Autor Garten
autor-elektronik Autor Elektronik
redakteur-heim Redakteur Heim
redakteur-garten Redakteur Garten
redakteur-elektronik Redakteur Elektronik

Die Kategorie-Einschränkung pro Redakteur wird mit dem Plugin PublishPress Permissions umgesetzt.


Workflow – Artikel von Entwurf bis Veröffentlichung

Autor meldet sich an
       ↓
Autor schreibt Artikel und wählt die richtige Kategorie (z.B. "Garten")
       ↓
Autor klickt „Zur Überprüfung einreichen" → Status: Ausstehend
       ↓
Redakteur (Bereich Garten) meldet sich an und sieht den Artikel
       ↓
Redakteur prüft, bearbeitet ggf. und klickt „Veröffentlichen"
       ↓
Artikel ist live 

🧪 Verschiedene Benutzer testen

So testest du das System mit unterschiedlichen Accounts:

Methode 1: Verschiedene Browser

Öffne unterschiedliche Browser gleichzeitig:

  • Chrome → als autor-heim angemeldet
  • Firefox → als redakteur-heim angemeldet
  • Edge → als Administrator angemeldet

Jeder Browser hält seine eigene Session → kein Ausloggen nötig.

Methode 2: Inkognito-Fenster

In Chrome/Firefox:

Normales Fenster     → Benutzer A
Inkognito-Fenster    → Benutzer B

Methode 3: Nacheinander ausloggen

  1. Oben rechts in WordPress → „Hallo, [Name]" → Abmelden
  2. Auf http://localhost:8080/wp-login.php mit anderem Account anmelden

Installierte Plugins

Plugin Zweck
Members (MemberPress) Rollenverwaltung – eigene Rollen erstellen und Berechtigungen feingranular steuern
PublishPress Permissions Kategorie-Einschränkung pro Benutzer – Redakteur sieht nur seinen Bereich
Demo-Plugin (demo.php) Testzweck – ersetzt alle Beitragstitel durch „Hello World (Originaltitel)"

Projekt stoppen

# Dienste stoppen (Daten bleiben erhalten)
docker compose down

# Dienste stoppen UND alle Daten löschen (komplett zurücksetzen)
docker compose down -v

Weiterführende Links

Read the full README on GitHub →