Nascondi categorie specifiche dalla pagina principale senza silenziarle o come ottenere il conteggio di nuovi argomenti nella categoria silenziata

Ci sono così tanti argomenti pubblicati nella mia community in una particolare categoria.

A volte le persone lo trovano fastidioso e vogliono rimuoverlo dalla home page.
Tuttavia, anche questi utenti non sono completamente disinteressati a tali categorie, né vogliono usare il silenziamento per bloccarle completamente.

Quindi ho pensato a due approcci.
1: Posizionare una casella di controllo sulla pagina principale per selezionare se visualizzare o meno una particolare categoria.
2: Invece di silenziare quella categoria, visualizzare il numero di Nuovi argomenti nella categoria silenziata sulla home page. Gli utenti possono vedere immediatamente la categoria cliccando sulla scheda di quella particolare categoria aggiunta alla barra di navigazione.

In effetti, potrei visualizzare il numero di Nuovi argomenti nel punto 2, ma ho scoperto subito dopo il completamento del componente che non potevo ottenere il numero di Nuovi argomenti nella categoria silenziata… Ho dimenticato di controllare la categoria silenziata…

Quindi sto considerando l’approccio 1 successivamente, ma non so come funziona la query della pagina principale o come nascondere determinate categorie…

O anche una soluzione per l’approccio 2 (come ottenere il numero di Nuovi argomenti nella categoria silenziata) andrebbe bene.

Qualsiasi aiuto sarebbe davvero apprezzato.

1 Mi Piace

Ciao @Programer-D
Puoi provare GitHub - keegangeorge/discourse-hide-categories: This is a theme component that allows you to hide specific categories from either the hamburger menu or category boxes.
o il metodo CSS.

Grazie mille.

Il CSS era un punto cieco, ma ho provato alcune cose e non sembra funzionare molto bene.
Non sono un madrelingua inglese, quindi immagino di non averlo spiegato abbastanza bene.
Nell’1, la notifica deve essere impostata al di sotto di Normale e alcune categorie devono essere nascoste.
In CSS, posso ottenere la classe della categoria e nasconderla, ma sembra che cancelli anche Watching e Tracking… Cercherò un modo per dare una classe in base alle impostazioni di notifica di ciascun argomento.

Inoltre, ho fatto qualche ricerca e sembra che la possibilità di rimuovere le categorie dall’alto sia stata una funzionalità molto discussa circa 2 anni fa ed è stata rimossa e sostituita con il silenzio.

Penso che coloro che erano contrari a sostituirla interamente con il silenzio avessero ragione. Il silenzio è una bella funzionalità. Ma il divario tra normale e silenzio è troppo grande e il silenzio lascia la categoria molto indietro.
Sarebbe stato bello avere qualcos’altro nel mezzo per un’altra impostazione di notifica.

Ci penserò ancora un po’…

Penso che ci sia un plugin per replicare il vecchio comportamento ‘suppress’, se può essere utile?

Grazie mille.
Stavo solo guardando una vecchia discussione e si parlava di creare un plugin del genere e stavo cercando di trovarlo.

Lo proverò appena possibile.

1 Mi Piace

Ad ogni modo, sembra che per impostazione predefinita venga soppressa la visualizzazione di tutte le impostazioni di notifica.
Questo è ancora funzionale (anche se col senno di poi anche il CSS non è male), ma proverò a perfezionarlo e a vedere se è possibile nascondere solo le impostazioni di notifica normali e silenziate.

Dato che si tratta di un plugin, sembra esserci spazio per miglioramenti, quindi ho ritrovato un po’ di motivazione. Grazie mille.

Non sono un madrelingua inglese

Qual è la tua lingua madre? Se russo / ucraino, benvenuto in PM.
Controllerò di più stasera riguardo al tuo problema.

Un’altra idea: limita questa categoria solo a un gruppo particolare e dai agli utenti la possibilità di unirsi quando ne hanno bisogno.
Oppure che vi si possa aderire per impostazione predefinita e interrompere la partecipazione al gruppo quando non si desidera più vederlo.

Puoi anche modificare il CSS per gruppi diversi - quindi, ad esempio, ci può essere un pulsante per unirsi facilmente a questo gruppo.

Ho esaminato un po’ il plugin e non sembra facile… Ho guardato dentro result = Topic::ActiveRecord e non sembra contenere dati relativi alle notifiche.

Inoltre, mi chiedo se sia possibile ottenere da qui le informazioni per i singoli argomenti e ottenere il notification_level.
Ho creato plugin che coinvolgono anche un po’ di Ruby, ma mi sono basato principalmente su Javascript, quindi non so molto di Ruby.

Forse… vorrei fare un foreach del contenuto di “result” per ottenere informazioni dettagliate su ciascun argomento, registrare gli ID degli argomenti solo di quelli il cui notification_level è “Tracking” o “Watching” e memorizzarli nella lista, e aggiungere alla clausola where “OR immagino che funzionerebbe bene se si usa topics.topic_id IN (#{topic_ids.join(',')}”. So che non è un codice molto elegante e non ho familiarità con Ruby, quindi non sono sicuro che funzionerebbe…

Troverò un modo per chiamare Topic per ID da Ruby.

Grazie mille.
Non avevo pensato di usare i gruppi… ma se la modifica attuale del plugin non funziona, ci penserò.

Non capisco tutto bene, ma in qualche modo ha funzionato.

Nel caso qualcun altro voglia fare la stessa cosa, lo lascio qui.

Riga 17 del plugin.rb del plugin che JammyDodger mi ha insegnato.

result.where("topics.category_id NOT IN (#{category_ids.join(",")})")

a

result.where("topics.category_id NOT IN (#{category_ids.join(",")}) OR tu.notification_level IN (2,3)")

I topic “Tracking” e “Watching” rimangono sulla pagina principale, ma il topic “Normal” è nascosto dalla pagina principale.
Ci è voluto un po’ perché non capivo bene ActiveRecord, ma se avessi comunicato il problema correttamente, potrebbe essere stato un problema facile per te.

Non sono sicuro al 100% di aver capito, ma se si imposta il ‘mute predefinito’ di una categoria dalle impostazioni di amministrazione categorie predefinite mute, sembra che faccia già una cosa simile? Gli argomenti non appariranno nell’elenco Ultimi, ma saranno tutti visibili se si accede alla pagina della categoria. E se un utente interagisce con uno in modo che diventi tracciato o seguito, allora quelli appariranno nei loro elenchi di argomenti.

È questo che stai cercando?

Il silenzio soddisfaceva approssimativamente i requisiti, ma c’era un problema: non riceveva più Nuovi Argomenti.

Ho creato un componente per ottenere il conteggio di questi argomenti, ma ho notato che Silenzia non riceve Nuovi Argomenti, quindi non ho potuto ottenere il numero di nuovi argomenti.

Ecco perché stavo cercando un modo per evitare che apparisse sulla pagina principale con l’impostazione di notifica Normale.

Questa potrebbe essere una situazione particolare. Per una data categoria, c’è un numero indesiderato di argomenti non letti nella home page, mentre l’impostazione predefinita su Silenzia rende difficile notare i nuovi argomenti e allontana eccessivamente gli utenti dalla categoria. Non volevamo farlo perché un gran numero di argomenti nella pagina principale significa una categoria molto fiorente.

Forse questo è un problema che avrebbe dovuto essere risolto educando gli utenti, ma volevamo fare comunque ciò che potevamo, e siamo lieti di essere riusciti a soddisfare i requisiti.

2 Mi Piace

Ah, capisco ora. Sono contento che tu abbia trovato una soluzione che funziona per te. :+1::slightly_smiling_face: