Traditionelle mehrstufige Hierarchie im Vergleich zur flachen Diskurshierarchie

Im Prinzip ist alles möglich.

Beispielsweise habe ich zuvor eine dreistufige Kategorienhierarchie erstellt, die auch mehrere Tag-Schnittpunkte auf der Kategorieebene unterstützt.

Dreistufige Kategorienhierarchie mit Multi-Tag-Schnittpunkten und Routenstruktur
scope "/multi" do
  constraints(tag_id: /[^\/]+?/, format: /json|rss/) do
     get '/c/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_category_show'
     get '/c/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_parent_category_category_show'
     get '/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_grandparent_category_category_show'

     Discourse.filters.each do |filter|
       get "/c/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_category_show_#{filter}"
       get "/c/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_parent_category_category_show_#{filter}"
       get "/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_grandparent_category_category_show_#{filter}"
     end
   end
end

Dies ist komplexer als das, was Sie meiner Meinung nach vorhaben, aber es ist nicht nachhaltig, es sei denn, Sie sind bereit, viel Zeit oder Ressourcen in die Unterstützung zu investieren. Es ist wahrscheinlich, dass es irgendwann kaputtgeht, wenn sich Standard-Discourse ändert.

Vor diesem Hintergrund gibt es zwei Dinge zu verstehen, die die Kategorie-/Tag-Routenstruktur in Standard-Discourse betreffen:

  1. Multi-Tag-Schnittpunkte sind nur siteweit möglich, nicht auf der Kategorieebene. Das heißt, es gibt in Standard-Discourse keine Routen, um eine Themenliste mit Themen in einer bestimmten Kategorie und mit mehr als einem bestimmten Tag anzuzeigen. Wenn Sie dies möchten, müssten Sie die Route hinzufügen.

  2. Kategorienschnittpunkte sind nicht möglich. Das heißt, es gibt in Discourse keine Route, um Themen aus zwei Kategorien auf derselben Ebene anzuzeigen (d. h. zwei übergeordnete Kategorien oder zwei untergeordnete Kategorien).

Sie können dennoch ein vierstufiges System erreichen (was Ihr Ziel zu sein scheint), ohne wesentliche serverseitige Erweiterungen vorzunehmen.

Beispielsweise könnten Sie ausschließlich Tags verwenden, um die vier Ebenen darzustellen. https://thepavilion.io/tags/intersection/events/bug/to-do/high stellt den Schnittpunkt der Tags „events“, „bug“, „to-do“ und „high“ auf Pavilion dar. Sie könnten vier Dropdown-Menüs haben, eines für jede Tag-Gruppe, aus der diese Tags stammen, z. B.

[plugin] [type] [status] [importance]

Sobald Sie herausgefunden haben, wie Sie Ihre Hierarchie innerhalb der vorhandenen Discourse-Routenstruktur strukturieren möchten, sind die restlichen Punkte, die Sie aufgeführt haben, nur clientseitige Änderungen und (relativ) unkompliziert.