Sto ospitando un sito che ha più di 1.000 categorie. La community per cui è in esecuzione preferisce utilizzare le categorie per la separazione semantica rispetto, ad esempio, ai tag.
Questo sta funzionando ragionevolmente bene, tuttavia, ho riscontrato un problema di recente (e non sono sicuro da quando è iniziato):
La navigazione in una vista di categoria che ha più di 20 sottocategorie e utilizza “Box” per renderizzare gli elementi di collegamento delle sottocategorie, renderizza solo (le prime?) 20 categorie nell’elenco.
Fare clic sull’elemento di selezione a discesa detailsmostra l’elenco completo.
Sì, penso che tu abbia perfettamente ragione nel tuo sospetto. Discourse non è stato progettato per gestire migliaia di categorie, per molte ragioni. Abbiamo fatto alcuni lavori sul caricamento delle categorie, quindi ciò potrebbe cambiare in futuro.
Prenderesti in considerazione almeno di rendere CategoryList::CATEGORIES_PER_PAGE o CategoryList::MAX_UNOPTIMIZED_CATEGORIES configurabili in qualche modo? Anche un’impostazione del sito nascosta andrebbe bene nel mio caso.
Scrivere codice di plugin per sostituirli è alquanto brutto poiché non riesco a trovare un altro modo se non il monkey patching di CategoryList, che sembra estremamente fragile.
Entrare nel mondo del monkey patching non è certamente l’ideale.
Detto questo, sarei preoccupato di armeggiare con CategoryList::MAX_UNOPTIMIZED_CATEGORIES, l’abbiamo scelto perché le cose diventano problematiche con numeri più alti. CategoryList::CATEGORIES_PER_PAGE invece potrebbe probabilmente essere tranquillamente aumentato a 100.
Abbiamo introdotto questa funzionalità perché i siti con oltre 1.000 categorie avevano una pagina “/categories” inutilizzabile. Sfortunatamente, ciò ha introdotto un bug perché se un sito ha più di 1.000 categorie, tenterà di forzare il caricamento lazy (o pagina per pagina) anche delle sottocategorie, anche quando non è il caso.