Discourse-Kategorie Startseite 🏠

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.

:link: GitHub: Repository https://github.com/merefield/discourse-category-home
:arrow_right: Installation: Befolgen Sie die Plugin-Installationsanleitung.

GefÀllt Ihnen dieses Plugin? Bitte :star: es auf GitHub ! :pray:

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” :houses: 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! :tada:

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! :+1:

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.

24 „GefĂ€llt mir“

Ich erhalte eine Fehlermeldung, wenn ich versuche, nach dem HinzufĂŒgen dieser Zeile zu meiner app.yml-Datei neu zu erstellen

Pups::ExecError: cd /var/www/discourse/plugins && git clone GitHub - merefield/discourse-category-home: Alters the user's homepage to become the Category of their Primary Group fehlgeschlagen mit RĂŒckgabe #<Process::Status: pid 391 exit 128>
Ort des Fehlschlags: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn’

Funktioniert es fĂŒr andere noch?

Scheint gut zu bauen. ÜberprĂŒfen Sie Ihre app.yml-Klon-Syntax.

Ich habe jedoch einen Fix fĂŒr eine fehlende Locale-Zeichenkette bereitgestellt :slight_smile: (aber das wird Ihr Problem nicht verursacht haben).

1 „GefĂ€llt mir“

Ja, es funktioniert jetzt bestens, danke fĂŒr das ausgezeichnete Plugin. Discourse Doctor hat es behoben, es muss ein Problem im Build gewesen sein, als ich die App das letzte Mal neu erstellt habe.

1 „GefĂ€llt mir“