Ich hoste eine Website mit mehr als 1.000 Kategorien. Die Community, für die sie läuft, zieht es vor, Kategorien zur semantischen Trennung zu verwenden, anstatt zum Beispiel Tags.
Dies funktioniert einigermaßen gut, jedoch bin ich kürzlich auf ein Problem gestoßen (und ich bin mir nicht sicher, wann es begann):
Das Aufrufen einer Kategorieansicht, die mehr als 20 Unterkategorien hat und “Boxes” verwendet, um die Unterkategorien-Linkelemente zu rendern, rendert nur (die ersten?) 20 Kategorien in der Liste.
Das Klicken auf das details-Dropdown-Auswahlelement zeigt die vollständige Liste an.
Ja, ich glaube, Ihr Verdacht ist richtig. Discourse wurde aus vielen Gründen nicht für die Verwaltung Tausender von Kategorien entwickelt. Wir haben einige Arbeiten an der Kategorieladung vorgenommen, sodass sich dies in Zukunft ändern könnte.
Würden Sie zumindest in Erwägung ziehen, CategoryList::CATEGORIES_PER_PAGE oder CategoryList::MAX_UNOPTIMIZED_CATEGORIES auf irgendeine Weise konfigurierbar zu machen? Selbst eine versteckte Website-Einstellung würde in meinem Fall funktionieren.
Das Schreiben von Plugin-Code, um diese zu ersetzen, ist einigermaßen hässlich, da ich keinen anderen Weg finde als das Monkey-Patching von CategoryList, was sich extrem fragil anfühlt.
Das Betreten der Welt des Monkey Patching ist sicherlich nicht ideal.
Dennoch wäre ich besorgt, an CategoryList::MAX_UNOPTIMIZED_CATEGORIES herumzuspielen, wir haben das gewählt, weil die Dinge bei höheren Zahlen problematisch werden. CategoryList::CATEGORIES_PER_PAGE könnte man jedoch wahrscheinlich problemlos auf 100 erhöhen.
Dies ist ein Fehler, den ich gerade hier behoben habe:
Wir haben diese Funktion eingeführt, da Websites mit über 1.000 Kategorien eine unbrauchbare “/categories”-Seite hatten. Leider hat dies einen Fehler eingeführt, denn wenn eine Website mehr als 1.000 Kategorien hat, wird versucht, Unterkategorien zwangsweise per Lazy Loading (oder seitenweise) zu laden, auch wenn dies nicht der Fall ist.