Categorie mancanti da `categories.json` nonostante siano presenti nel sistema (tema personalizzato)

Abbiamo creato un tema personalizzato per Discourse in cui alcune categorie specifiche vengono visualizzate sulla homepage utilizzando JavaScript. Lo script utilizza una lista predefinita di nomi di categorie (come array separato da virgole) per recuperare e rendere i contenuti da /categories.json.

Mentre la maggior parte delle categorie viene visualizzata correttamente, alcune risultano mancanti dalla homepage, anche se sono esplicitamente elencate nello script e presenti nel sistema con ID di categoria validi.

Esaminando la risposta di /categories.json, abbiamo scoperto che queste categorie specifiche non sono incluse affatto nell’output dell’API. Tuttavia:

  • Esistono nell’istanza Discourse
  • Sono categorie di livello superiore
  • Hanno everyone con almeno i permessi “Vedi”
  • Non sono archiviate, nascoste o annidate

Stiamo cercando di capire:

  1. In quali condizioni Discourse omette le categorie da categories.json?
  2. Come possiamo assicurarci che tutte le categorie necessarie appaiano in quella risposta, soprattutto se vogliamo visualizzarle sulla homepage tramite codice personalizzato?

Qualsiasi informazione o soluzione raccomandata sarebbe apprezzata.

Non sono sicuro, ma è su /latest? Forse include solo categorie che hanno argomenti nell’elenco degli argomenti?

1 Mi Piace

questa è l’ultima versione di discourse e non ha ancora argomenti… ho provato a creare un argomento fittizio in una delle categorie invisibili in base all’ID della categoria, presumendo che ciò avrebbe richiamato il json delle categorie per elencarle, ma non ha aiutato e quindi ho eliminato anche l’argomento fittizio… attualmente entrambe le categorie non hanno argomenti…

Sembra che abbia ragione. Sarebbe sciocco avere le ultime categorie inviate che non vengono utilizzate nell’interruzione. Penso che quello che farei sarebbe codificare le categorie che desideri o inserirle in un’impostazione del tema.

Potresti anche fare una chiamata Ajax, ma ciò rallenterebbe le cose.

Per quanto mi riguarda, ho appena creato una categoria vuota e la vedo nel mio /categories.json

Bene. Credo che se si ottiene quell’endpoint, avrà delle categorie, ma quelle incluse in /latest sono probabilmente solo quelle necessarie per quegli argomenti.

1 Mi Piace

Mi sono probabilmente confuso. :melting_face: Pensavo riguardasse il fatto che /categories.json non includesse certe categorie per un motivo sconosciuto e ho pensato di provare a escludere quelle senza argomenti come causa.

Non fate caso a me… :slight_smile:

1 Mi Piace

Non è chiaro che sia stato io ad essere confuso. E possiamo avere ragione entrambi. Non mi è ancora chiaro cosa stesse guardando l’OP.

1 Mi Piace

Grazie Pfaffman, JammyDodger. Poiché stiamo usando un tema personalizzato, abbiamo tentato di aggiungere alcune categorie precedentemente nascoste alla homepage appendendole alla lista esistente di categorie esposte nel nostro JavaScript. Abbiamo già cinque categorie che vengono visualizzate correttamente usando questo metodo. Tuttavia, aggiungere queste due categorie aggiuntive non fa apparire nulla sulla homepage. Per la risoluzione dei problemi, abbiamo anche provato a pubblicare un argomento in una di esse per vedere se avrebbe attivato la visibilità, ma non ha avuto effetto.

Potresti condividere il tuo codice, magari collegandoti a GitHub

2 Mi Piace

Abilitando il caricamento lazy, ho risolto questo problema per visualizzare le categorie che prima non erano visibili… Non sono sicuro di come sia collegato… Tuttavia implica che le categorie non abbiano problemi di autorizzazione… non ho ancora trovato la causa principale per risolvere questo problema.

Quel codice di caricamento lazy, credo, è progettato per non inviare le categorie che pensa non siano necessarie inviare. Non sono sicuro di come convincerlo che vuoi tutte le categorie.