Zusammenfassung:
Weisen Sie jedem Benutzer eine bestimmte Homepage (âHome-Kategorieâ) in Ihrer Community zu.
Es ermöglicht Ihnen, ein einziges Discourse zu haben, in dem Benutzer spezifische âHomepagesâ (d. h. Kategorien) haben, die durch ihre primĂ€re Gruppe bestimmt werden.
GitHub: Repository https://github.com/merefield/discourse-category-home
Installation: Befolgen Sie die Plugin-Installationsanleitung.
GefÀllt Ihnen dieses Plugin? Bitte
es auf GitHub ! ![]()
Funktionen
Durch die ausschlieĂliche Verwendung der verfĂŒgbaren OberflĂ€chenelemente eines normalen Discourse ist dies eine robuste und leicht zu wartende Lösung.
Konfiguration
Verwendung normaler Discourse-FunktionalitÀt:
- Entscheiden Sie, wie viele Kategorie-âHomesâ
Sie möchten, und erstellen Sie sie, falls sie nicht existieren:
- Erstellen Sie, sofern sie nicht bereits existieren, eine separate Gruppe fĂŒr jede davon
- FĂŒgen Sie die Benutzer entsprechend zu jeder dieser Gruppen hinzu
- Legen Sie diese Gruppe als primÀre Gruppe jedes Benutzers fest
- Erteilen Sie jeder dieser Gruppen Berechtigungen fĂŒr ihre jeweilige Kategorie.
Sie sind FERTIG! ![]()
Wenn nun jemand Ihre Community-Homepage aufruft, wird er zu der Kategorie weitergeleitet, fĂŒr die seine primĂ€re Gruppe berechtigt ist.
Hinweis: Dies folgt einer einfachen Regel, an die Sie sich halten mĂŒssen: Wenn jemand eine registrierte primĂ€re Gruppe hat und diese fĂŒr eine einzelne Kategorie berechtigt ist, wird er zu dieser Kategorie als seine Homepage weitergeleitet.
Die Verwendung einer primÀren Gruppe auf diese Weise hat eine Reihe von Vorteilen, wie Sie vielleicht aus dem obigen Link ersehen können, nicht zuletzt:
- Sie können jemandem einen Titel geben
- Sie können ihm ein Flair geben
- Sie können seine BeitrÀge gestalten
Weitere Ăberlegungen
Machen Sie Ihre Kategorie-Homepages wirkungsvoller, indem Sie sie z. B. deutlich gestalten: Category Banners
ĂberprĂŒfung eindeutiger Kategorie-/PrimĂ€rgruppenberechtigungen
Um zu ĂŒberprĂŒfen, ob Ihre primĂ€re Gruppe nur mit einer einzigen Kategorie verknĂŒpft ist, können Sie diese praktische, sofort einsatzbereite Funktion von Discourse verwenden, z. B.:
Es gibt nur eine Kategorie in der Liste, gut! ![]()
Der technische Teil
Die genaue verwendete Logik ist diese:
return CategoryGroup.where(group_id: primary_group).first.category_id
Obwohl es möglich sein könnte, es zu âschummelnâ, ist es wahrscheinlich unklug, wenn Sie diese primĂ€re Gruppe fĂŒr mehr als eine Kategorie verwenden, wenn Sie erwarten, dass dies funktioniert. Beachten Sie dies also und halten Sie sich an meine Empfehlung.
Mehr FlexibilitÀt bieten
Ich bin offen fĂŒr VorschlĂ€ge, wie dieses Verhalten weiter konfiguriert werden kann, aber ich möchte die Menge an benutzerdefinierten Einstellungen begrenzen und so viel wie möglich von den Standardfunktionen und -daten verwenden. Wenn Sie eine einfache, elegante Lösung im Sinn haben, lassen Sie es mich wissen.
Plugins können nicht installiert werden / Die primĂ€re Gruppenfunktion funktioniert fĂŒr Sie nicht?
Wenn Sie keine Plugins installieren können (weil Sie sich auf einem restriktiven Hosting-Plan befinden) oder die Konfiguration der primĂ€ren Gruppe fĂŒr Sie nicht funktioniert, sollten Sie diese Theme Component-Alternative in Betracht ziehen: Custom Homepage for Groups, die eine benutzerdefiniertere Konfiguration erfordert, aber weniger invasiv ist.
