Nascondi tutti gli argomenti "about the x category"

Sono consapevole che questi sono sempre visibili agli amministratori per impostazione predefinita. Ma supponiamo che non voglia vederli sul mio sito personale che sto costruendo su Discourse, nemmeno come amministratore.

Come potrei nascondere tutti questi argomenti in tutte le categorie?

Puoi metterli in elenco ma li vedrai comunque perché sei un amministratore. :thinking: Anche se potresti silenziare gli argomenti.

Forse è possibile con CSS?

Non sono sicuro che abbiano una classe dedicata?

Penso che proverei l’approccio ‘taggali tutti e silenzia il tag’ poiché sembra il minimo sforzo. (Ma rimuovili dall’elenco a beneficio di tutti gli altri)

Per curiosità, perché vuoi nasconderli da te stesso?

1 Mi Piace

Per curiosità, perché vuoi nasconderli a te stesso?

Onestamente? Semplicemente non mi piace vederli. Se vado sul mio blog… voglio vedere solo il mio blog :slight_smile:

Ho trovato una soluzione. Ovviamente non è una soluzione scalabile, e potrebbe anche non essere tecnicamente ottimale (non sono sicuro di come verrebbe gestita su siti più grandi con molti caricamenti di pagine, ecc.), ma è una che funziona per me dato che ho solo una categoria per il mio blog:

ChatGPT me l’ha fornito e ha funzionato al primo tentativo. Mirando solo a questo ID argomento molto specifico e nascondendolo:

<script>
  document.addEventListener("DOMContentLoaded", function() {
    var element = document.querySelector('[data-topic-id="10"]'); // sostituisci 10 con il tuo ID argomento
    if (element) {
      element.style.display = 'none';
    }
  });
</script>

Ecco fatto!

1 Mi Piace

Se sei curioso riguardo all’approccio aziendale (perché so di aver pubblicato/tu hai risposto a riguardo molto tempo fa), è semplicemente un’esperienza amministrativa incoerente avere un argomento di Discourse utilizzato come impostazione di categoria, mentre nessun’altra impostazione di categoria è rappresentata come un argomento di Discourse. È molto disconnesso (anche se ancora molto intelligente!). Vedo anche questi argomenti “Informazioni” rinominati, utilizzati come guide per iniziare (lo faccio anch’io, anche se solo perché sono costretto a mantenerlo), ecc.

Capisco il perché e il valore iniziale di utilizzare un argomento come luogo esistente per ospitare la descrizione dell’argomento. Vedo anche il potenziale nella stessa capacità, come il testo del componente tema discourse-category-sidebars ospitato da un argomento.

Ma dal punto di vista dell’UX e amministrativo, mi aspetterei che tutte le mie impostazioni di categoria siano semplicemente in un unico posto. Discourse memorizza già il testo come impostazione all’interno della categoria, con markdown e tutto il resto, per il modello di categoria. Sarebbe fantastico vedere la coerenza portata alla categoria in questo modo.

Spero che questo dia un po’ più di chiarezza!


EDIT: Se mi manca qualche valore che non ho ancora visto, indicamelo! :rocket:

Inoltre, MODIFICA:

Peccato. Sembra che lo script che ho collegato sopra funzioni solo la prima volta che la pagina web viene caricata nel browser. Se navighi nel sito e torni indietro, quegli elementi ricompaiono. Con la mia limitata (leggi: assolutamente nulla) conoscenza dello sviluppo web, presumo sia perché DOMContentLoaded non viene eseguito di nuovo dopo che il sito è stato caricato.

La ricerca continua…

Penso che se stai cercando di nascondere solo un argomento, probabilmente puoi farlo con CSS. Il mio CSS è scarso, ma vedo l’ID dell’argomento in lì, quindi è probabile che possa essere mirato?

Ah, c’è un intoppo! Se lo riutilizzi, quello non apparirà in alcuni elenchi di argomenti o attiverà notifiche quando le persone rispondono, ecc. Penso che la cosa migliore da fare con loro, così come sono, sia semplicemente lasciarli come descrizioni di categoria e chiuderli (e non elencarli se non vuoi che siano visibili alla maggior parte delle persone). A parte le modifiche per sviluppatori, ovviamente, se riesci a farlo. :slight_smile:

Memorizzare la descrizione della categoria negli argomenti è emerso come una discussione interna, così come il modo in cui gestiamo i ToS e le Linee guida, ecc. Non ci sono piani immediati per cambiare il formato, ma penso che ci sia sicuramente una conversazione da avere.

C’è un argomento Feature sulla modifica dell’impostazione predefinita

2 Mi Piace

Questo è un aggiornamento che funziona perfettamente per il mio caso d’uso.

Se vuoi nascondere un particolare argomento tramite CSS, al caricamento della pagina e da quel momento in poi, questo lo farà. Basta aggiungere i tuoi ID argomento all’elenco degli ID argomento:

<script>
  document.addEventListener("DOMContentLoaded", function() {
    var topicIdsToHide = ["10", "20", "30"]; // Aggiungi qui i tuoi ID argomento

    function hideElementsByDataTopicIds() {
      topicIdsToHide.forEach(function(id) {
        var element = document.querySelector('[data-topic-id="' + id + '"]');
        if (element) {
          element.style.display = 'none';
        }
      });
    }

    // Esegui la funzione inizialmente
    hideElementsByDataTopicIds();

    // Crea un osservatore di mutazioni per monitorare le modifiche al DOM
    var observer = new MutationObserver(function(mutations) {
      mutations.forEach(function(mutation) {
        hideElementsByDataTopicIds();
      });
    });

    // Osserva l'intero documento
    observer.observe(document.body, { childList: true, subtree: true });
  });
</script>