Mostra tutte le categorie nella home page (incluse quelle silenziate), ma non mostrare i loro argomenti negli ultimi post

Quindi, la nostra homepage mostra due colonne: le categorie a sinistra e gli ultimi argomenti a destra.

Gli argomenti in una categoria vengono aggiornati automaticamente, quindi vorrei nasconderli dalla colonna di destra (ultimi).

Tuttavia, non voglio disattivare le notifiche di quella categoria per tutti gli utenti: non è bello vederla nascosta nel “Disattivato”, ovvero nello spoiler, nella homepage.

Esiste qualche modo per aggirare questo problema?

1 Mi Piace

Ultimo aggiornamento circa 2 anni fa. Sono preoccupato per possibili problemi di compatibilità.

Il caso ideale sarebbe raggiungere il mio obiettivo utilizzando strumenti standard.

Che ne dici di creare una sottocategoria e impostare la categoria principale in modo che non includa i temi della sottocategoria nel filtro dell’elenco predefinito?

Questo influenzerà l’elenco “Ultime” visualizzato nella home page Categoria+Ultime?

Un’altra questione è: se qualcuno silenzia una categoria, ciò non influisce su ciò che viene mostrato agli utenti anonimi, giusto?

Nel mio caso, vorrei ottenere coerenza. Ho bisogno di una categoria completa che si comporti come una normale, tranne per il fatto che i suoi nuovi argomenti e aggiornamenti non vengono visualizzati nella sezione “Ultime” nella home page.

A essere onesti, non ne sono sicuro senza replicare la tua configurazione. :slightly_smiling_face: Tuttavia, puoi anche impostare l’opzione di silenziamento predefinito per la sottocategoria (o modificare la visibilità nelle impostazioni di sicurezza). Potrebbe essere necessario provare diverse combinazioni per vedere se qualcuna si avvicina a ciò che desideri.

Se un utente silenzia qualcosa (un argomento, una categoria, un tag o un altro utente), l’azione vale solo per lui e non ha alcun effetto sugli altri.

Dovresti utilizzare le opzioni di silenziamento predefinite nelle impostazioni di amministrazione per renderle globali, e anche in quel caso un utente potrebbe sovrascriverle.

Sì. Ecco perché sono qui: non sono riuscito a risolvere il problema dopo aver provato diverse varianti che mi sono venute in mente.

Avere una categoria padre regolare e una sottocategoria disattivata di default sembra che ti possa avvicinare?

O forse un tag disattivato invece?

Questa visualizzazione mostra di default 20 argomenti. Quindi, a meno che quella specifica categoria non riceva molti argomenti aggiornati – siano essi nuovi argomenti o risposte – penso vada bene semplicemente nascondere quegli argomenti.

Hai due opzioni.

  1. Con JavaScript nella scheda intestazione del tuo tema
<script type="text/discourse-plugin" version="0.8">
  const { on } = require("discourse-common/utils/decorators");
  const ignoreCategoryId = 6;

  api.modifyClass("component:categories-topic-list", {
    @on("didReceiveAttrs")
    removeCategoryTopics() {
      const filtered = this.topics.filter(
        ({ category_id }) => category_id !== ignoreCategoryId
      );

      this.topics = filtered;
    },
  });
</script>

Questo impedisce che il markup degli argomenti venga renderizzato. Modifica ignoreCategoryId con l’ID della categoria che vuoi escludere. Puoi trovarlo visitando quella categoria e controllando l’URL nel tuo browser.

https://meta.discourse.org/c/support/6 <---- l'ultima cifra è l'ID della categoria
  1. Con CSS… se si tratta di una categoria di primo livello
.latest-topic-list-item.category-SLUG {
  display: none;
}

se si tratta di una sottocategoria

.latest-topic-list-item.category-PARENT_SLUG-CATEGORY_SLUG {
  display: none;
}

Oltre a questo, per quanto ne so, sarà necessario un plugin o una modifica al core.

2 Mi Piace