Hallo, @pfaffman, frohe Feiertage und danke für die Antwort!
Ich habe versucht, ein Flussdiagramm zu erstellen, um es zu verdeutlichen:
flowchart TB
A0(Benutzer versucht, ein neues Thema in Kategorie A oder B zu erstellen) --> A1{Ist der Benutzer in einer<br>befreiten Gruppe--Admin, Mod,TL3, TL4,Abonnenten?}
A1 -- Nein --> B1(Überprüfe das letzte Thema des Benutzers in den Kategorien A, B oder C,<br>einschließlich ausgeblendeter oder gelöschter Einträge)
A1 -- Ja --> Z1(Posten erlauben)
B1 --> B2{Wurde das letzte Thema<br>innerhalb von 14 Tagen erstellt?}
B2 -- Ja --> C1(Beitrag blockieren + Fehler anzeigen,<br>Cooldown anzeigen,<br>Link zu Regeln)
C1 --> E1(Entwurf speichern +<br>Senden-Schaltfläche deaktivieren) --> Ende(Ende)
B2 -- Nein --> D1(Beitrag erlauben)
D1 --> Ende(Ende)
Z1 --> Ende(Ende)
Und ich habe auch versucht, eine einfache Spezifikation zu erstellen, um die Klärung zu unterstützen
```mermaid
flowchart TB
A0(Benutzer versucht, ein neues Thema in Kategorie A oder B zu erstellen) --> A1{Ist der Benutzer in einer<br>befreiten Gruppe--Admin, Mod,TL3, TL4,Abonnenten?}
A1 -- Nein --> B1(Überprüfe das letzte Thema des Benutzers in den Kategorien A, B oder C,<br>einschließlich ausgeblendeter oder gelöschter Einträge)
A1 -- Ja --> Z1(Posten erlauben)
B1 --> B2{Wurde das letzte Thema<br>innerhalb von 14 Tagen erstellt?}
B2 -- Ja --> C1(Beitrag blockieren + Fehler anzeigen,<br>Cooldown anzeigen,<br>Link zu Regeln)
C1 --> E1(Entwurf speichern +<br>Senden-Schaltfläche deaktivieren) --> Ende(Ende)
B2 -- Nein --> D1(Beitrag erlauben)
D1 --> Ende(Ende)
Z1 --> Ende(Ende)
Erklärung des Ablaufs
-
A0: Ein Benutzer versucht, ein neues Thema in Kategorie A oder B zu erstellen.
-
A1: Das System prüft, ob der Benutzer zu einer befreiten Gruppe gehört:
- Administratoren
- Moderatoren
- Vertrauensstufe 3 (TL3)
- Vertrauensstufe 4 (TL4)
- Eine benutzerdefinierte Gruppe „Abonnenten“
- Wenn Ja, überspringe die Cooldown-Prüfung und erlaube sofort das Posten (Z1).
- Wenn Nein, fahre mit B1 fort.
-
B1: Das System ruft das zuletzt vom Benutzer erstellte Thema in den Kategorien A, B oder C ab. Diese Suche muss Folgendes beinhalten:
- Soft-gelöschte Themen (nicht dauerhaft aus der Datenbank entfernt).
- Themen, die in ausgeblendete oder Compliance-Kategorien verschoben wurden (z. B. Kategorie C).
-
B2: Das System prüft, ob das Erstellungsdatum des letzten Themas innerhalb der letzten 14 Tage liegt.
- Ja → Weiter zu C1 (der Beitrag wird blockiert).
- Nein → Weiter zu D1 (der Beitrag wird erlaubt).
-
C1: Das System zeigt eine Fehlermeldung an, die den Benutzer darüber informiert, dass er sich noch im Cooldown befindet. Die Nachricht sollte Folgendes enthalten:
- Eine vereinfachte Aussage, dass er noch nicht posten kann.
- Die verbleibende Zeit in Tagen und Stunden (keine Minuten).
- Ein Link zur Seite mit den Community-Regeln (unten angegeben).
-
E1: Nachdem die Fehlermeldung angezeigt wurde, wird der Inhalt des Benutzers automatisch als Entwurf gespeichert und die Schaltfläche „Senden“ oder „Thema erstellen“ wird deaktiviert.
-
D1: Wenn seit dem letzten Thema des Benutzers mehr als 14 Tage vergangen sind, erlaubt das System das Posten des neuen Themas.
-
Z1: Der Benutzer gehört zu einer befreiten Gruppe und kann daher uneingeschränkt posten.
2. Detaillierte Spezifikation
2.1 Eingeschränkte vs. Befreite Gruppen
- Eingeschränkte Gruppen:
- Alle Benutzer, die nicht zu den folgenden befreiten Gruppen gehören (üblicherweise TL0, TL1, TL2).
- Befreite Gruppen:
- Administratoren
- Moderatoren
- Vertrauensstufe 3 (TL3)
- Vertrauensstufe 4 (TL4)
- Abonnenten (eine benutzerdefinierte Gruppe)
Diese befreiten Gruppen überspringen die 14-Tage-Prüfung vollständig.
2.2 Betroffene Kategorien
- Versuch, ein neues Thema zu erstellen:
- Ausgelöst, wenn ein Benutzer (in einer eingeschränkten Gruppe) versucht, ein neues Thema in Kategorie A oder B zu erstellen.
- Prüfung des letzten Themas:
- Das System prüft das zuletzt vom Benutzer erstellte Thema in den Kategorien A, B oder C (wobei C die „ausgeblendete“ oder „Compliance“-Kategorie ist).
Hinweis: Kategorie C ist enthalten, um Situationen zu erfassen, in denen das Thema eines Benutzers zur Löschung/Ausblendung/Compliance verschoben wird. Wenn der Benutzer innerhalb der letzten 14 Tage ein Thema in Kategorie C erstellt hat, zählt dies ebenfalls zum Cooldown.
2.3 14-Tage-Cooldown-Logik
- Wenn das aktuellste Thema des Benutzers (in A/B/C) innerhalb der letzten 14 Tage erstellt wurde, blockiere die Erstellung neuer Themen in A oder B.
- Wenn mehr als 14 Tage vergangen sind, erlaube es.
Zeitberechnung
- Zeige die verbleibende Zeit in Tagen und Stunden an (z. B. „3 Tage 12 Stunden verbleibend“).
- Minuten oder Sekunden müssen nicht angezeigt werden.
2.4 Blockieren und Entwurfspeicherung
-
Blockierverhalten:
- Wenn der Benutzer blockiert wird, zeige eine Fehlermeldung (C1) an.
- Das System speichert automatisch den Inhalt des Benutzers als Entwurf.
- Die Schaltfläche „Senden“ wird deaktiviert, damit der Benutzer nicht fortfahren kann.
- Beispiel-Fehlermeldung (vereinfacht):
Entschuldigung, Sie können im Moment noch kein neues Thema in dieser Kategorie erstellen.
Ihr letztes Thema wurde vor weniger als 14 Tagen gepostet,
und Sie haben noch {X Tage und Y Stunden} Zeit, bevor Sie wieder posten können.
Weitere Details finden Sie in unseren Community-Regeln:
https://community.lezismore.org/t/topic/26/2
2.5 Zukünftige Flexibilität
- Zusätzliche Kategorien:
- Derzeit sind nur A, B und C konfiguriert.
- Wenn Sie in Zukunft Kategorien zu diesem Cooldown hinzufügen oder daraus entfernen müssen, stellen Sie sicher, dass das System oder Plugin ohne größere Codeänderungen erweitert werden kann.
- Unterschiedliche Zeiträume:
- Der 14-Tage-Zeitraum könnte in den Einstellungen des Plugins konfigurierbar sein (falls Sie 7 Tage, 30 Tage usw. wünschen).
- Dynamische Gruppenzuweisungen:
- Zusätzliche oder weniger befreite Gruppen (z. B. wenn Sie „Abonnenten“ hinzufügen oder entfernen) sollten unterstützt werden.
3. Zusammenfassung
- Eingeschränkte Gruppen (TL0, TL1, TL2 oder jeder Benutzer, der keiner befreiten Gruppe angehört) unterliegen einem 14-tägigen Cooldown, bevor sie ein weiteres Thema in den Kategorien A oder B erstellen können.
- Befreite Gruppen (Admin, Moderator, TL3, TL4, „Abonnenten“) können ohne Einschränkungen posten.
- Das System prüft die aktuellste Themenspeicherung in den Kategorien A, B oder C (einschließlich Soft-Delete oder versteckter Themen). Wenn es innerhalb von 14 Tagen erstellt wurde, wird das neue Thema blockiert.
- Fehlermeldung: Zeigt die verbleibende Zeit in Tagen/Stunden an und verlinkt zu den Community-Regeln unter:
- Entwurf: Wenn blockiert, wird der Beitrag des Benutzers als Entwurf gespeichert und die Senden-Schaltfläche deaktiviert.
- Diese Spezifikation kann in Zukunft auf zusätzliche Kategorien oder andere Zeiträume erweitert werden.
Ich würde mich über jeden Vorschlag freuen!