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.
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.
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.
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.
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.
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.
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.