Ho un sito con l’opzione “consenti argomenti non categorizzati” disabilitata, ma la categoria “non categorizzati” è visibile a un utente non autenticato (o autenticato come amministratore) su Android. Ho appena eseguito una ricompilazione. I componenti del tema non spiegano il problema. Il problema persiste in modalità sicura. Sono installati solo plugin ufficiali.
Sì! Si tratta solo dell’argomento ‘about’, nessun altro. Non riesco proprio a capire come sia possibile, considerando le specifiche che presumo siano in atto. E riguarda solo la versione mobile, non quella desktop.
Non credo che ci aspettiamo che l’argomento ‘About’ rimanga in ‘Non classificato’ quando è disabilitato. L’avviso nella descrizione dell’impostazione del sito ‘consenti argomenti non classificati’ recita (enfasi aggiunta):
AVVISO: Se ci sono alcuni argomenti non classificati, devi riclassificarli prima di disattivare questa opzione.
Puoi provare a spostare l’argomento ‘About’ in una categoria attiva? Sembra che abbia funzionato sul mio sito di test.
È piuttosto confuso, dato che normalmente è vietato eliminare un argomento about (ma immagino che non sia davvero un argomento about perché non è una categoria). Comunque l’ho fatto, e ora “Senza categoria” non appare più. E ho dovuto farlo dal telefono, perché altrimenti non riuscivo a trovarlo.
“Senza categoria” è molto confuso, dato che NON è una categoria. Credo davvero che dovrebbe essere disattivato di default.
No, perché non credo nell’imporre una classificazione artificiale di Animale, Vegetale o Minerale a ogni singola istanza nel mondo fin da subito. Scusa.
Fai attenzione all’avvertenza presente lì, inserita per un motivo:
AVVISO: Se ci sono qualsiasi argomento non categorizzato, devi ricategorizzarli prima di disattivarlo.
Detto questo, possiamo normalizzare questo comportamento @zogstrip in modo che sia coerente tra mobile e desktop?
Già. Capisco quell’argomento e ci ho anche creduto in passato, ma penso che una categoria predefinita abbia più senso rispetto a una categoria “nessuna”. Tuttavia, cercherò di non riproporlo di nuovo, a meno che, forse, un giorno non ci troviamo nello stesso luogo con una .
@nbianca puoi aggiungere alla tua lista di investigare perché la categoria “non classificati” veniva visualizzata su mobile quando non veniva mostrata su desktop?
Su desktop mostriamo le categorie e gli argomenti separatamente, mentre su mobile le mostriamo combinate. Tenendo presente questo, è questa riga a causare il bug:
c.displayable_topics.blank? è sempre vero su desktop perché carichiamo gli argomenti separatamente, quindi displayable_topics è sempre vuoto. Su mobile, è vero solo se non ci sono davvero argomenti in quella categoria.
Abbiamo due soluzioni:
mostrare “senza categoria” se c’è almeno un argomento, indipendentemente dal valore dell’impostazione “consenti argomenti senza categoria”
nascondere “senza categoria” anche se c’è un argomento, se “consenti argomenti senza categoria” è disattivato
La seconda soluzione è più semplice da implementare perché significa semplicemente rimuovere la seconda parte della condizione.
Penso che nascondere gli argomenti non categorizzati sia (stranamente) meno confuso rispetto a non nasconderli quando si attiva l’impostazione. Credo che se disattivi la categoria ‘non categorizzati’, noterai immediatamente che tutti quegli argomenti sono scomparsi, ma se non succede nulla quando li disattivi, allora sembra che qualcosa non funzioni.
Ho inviato una correzione per il bug nel primo post:
Ho scelto la prima soluzione perché è quella che elimina del codice da Discourse. L’altra, invece, aggiunge codice per determinare se esiste almeno un argomento nella categoria “Non categorizzati”.
Ho anche esaminato tutti gli utilizzi di category.uncategorized? e ho individuato alcuni punti che potrebbero non essere necessari se rendessimo “Non categorizzati” meno un caso speciale e più una categoria a tutti gli effetti:
Queste sono alcune parti che non interferiscono con altre funzionalità, il che rende le modifiche meno rischiose, ma comunque non semplici da implementare.