Estoy alojando un sitio que tiene más de 1000 categorías. La comunidad para la que se está ejecutando prefiere usar categorías para la separación semántica en lugar de, por ejemplo, etiquetas.
Esto está funcionando razonablemente bien, sin embargo, me encontré con un problema recientemente (y no estoy seguro de cuándo comenzó):
Navegar a una vista de categoría que tiene más de 20 subcategorías y utiliza “Boxes” para renderizar los elementos de enlace de subcategoría, solo renderiza (las primeras?) 20 categorías en la lista.
Hacer clic en el elemento de selección desplegable detailsmuestra la lista completa.
Sí, creo que tienes toda la razón con tu sospecha. Discourse no fue diseñado para manejar miles de categorías, por muchas razones. Hemos estado trabajando en la carga de categorías, por lo que eso puede cambiar en el futuro.
¿Considerarías al menos hacer que CategoryList::CATEGORIES_PER_PAGE o CategoryList::MAX_UNOPTIMIZED_CATEGORIES sean configurables de alguna manera? Incluso una configuración oculta del sitio funcionaría en mi caso.
Escribir código de plugin para reemplazar estos es algo feo, ya que no encuentro otra forma que no sea el “monkey patching” de CategoryList, lo que se siente extremadamente frágil.
Entrar en el mundo del “monkey patching” ciertamente no es lo ideal.
Dicho esto, me preocuparía manipular CategoryList::MAX_UNOPTIMIZED_CATEGORIES, lo elegimos porque las cosas se vuelven problemáticas con números más altos. Sin embargo, CategoryList::CATEGORIES_PER_PAGE probablemente podría aumentarse cómodamente a 100.
¿@nbianca / @hugh tienen alguna opinión al respecto?
Introdujimos esta función porque los sitios con más de 1000 categorías tenían una página “/categories” inutilizable. Desafortunadamente, esto introdujo un error porque si un sitio tiene más de 1000 categorías, intentará forzar la carga diferida (o página por página) de las subcategorías también, incluso cuando no sea el caso.