Nascondi le categorie in base all'appartenenza al gruppo utenti

Continuando la discussione da Come dividere il forum in due parti principali (generale/gruppi) e come visualizzare solo le sottocategorie in cui posso creare un nuovo post?:

Ciao a tutti,

Ecco un componente del tema che realizza una cosa che volevo fare da molto tempo, ma mi piacerebbe ricevere i vostri commenti sul codice per migliorarlo, o i vostri suggerimenti.

Non credo che il codice sia molto buono, quindi non voglio consigliarlo prima che sia stato controllato da qualcun altro.

Cosa fa

Nasconde con CSS tutti i topic per i quali l’utente ha una restrizione di permesso sulla categoria nelle pagine scelte.

Repository

Link al repository
framagit.org/oca/discourse-theme-shroud-subcategories

Motivazione

Ho una comunità con molti gruppi e vorrei che le persone ignorassero pacificamente ciò che proviene da gruppi diversi dal loro. Non voglio limitare l’accesso ai contenuti, voglio solo che non appaiano nella pagina principale. Dovrebbero poter accedervi andando a cercarli, scegliendo di entrare specificamente in quella categoria (ad esempio, per sapere cosa si discute lì). Ovviamente, lo strumento più adatto sarebbe la funzione di osservazione/ignoramento, ma poiché l’interfaccia richiede più di 2 clic per configurarla, nessuno nella comunità la usa. Alcuni miglioramenti sulla pagina delle categorie potrebbero funzionare, ma sono al di fuori delle mie competenze.

Quindi, uso ciò che è abbastanza semplice per loro: la pagina dei gruppi. Nella stessa pagina vengono visualizzati tutti i gruppi a cui possono accedere, liberamente o meno, e la loro descrizione. È perfetto, devono solo cliccare e sceglierli. La pagina dei gruppi è troppo nascosta per loro (dentro il menu hamburger), quindi potrei mettere un grande link a un pulsante sulla pagina principale.

Ora, devo collegare l’iscrizione al gruppo alla visualizzazione dei post della categoria.

Come funziona

Il trucco che ho usato è stato impostare i permessi della categoria come segue:

  • tutti: lettura, scrittura
  • quel gruppo: avviare un messaggio, lettura, scrittura

e poi, per ogni topic nell’elenco, verificare se esiste una restrizione sulla categoria e, in caso affermativo, aggiungere una classe not-in-group all’elemento del topic.

Poi, il CSS aggiunge display:none di conseguenza.

Interfaccia utente

L’amministratore può scegliere le pagine in cui questo comportamento è efficace. Non dovrebbe essere fatto sulla pagina della categoria perché, per definizione, è lì che vogliamo accedere ai contenuti. Sul mio sito web, tutti questi gruppi sono sottocategorie nascoste dalla pagina latest, vi accediamo attraverso la pagina /c/groups/, quindi è quella pagina che viene utilizzata.

Miglioramenti

  • Poter selezionare le categorie padre delle categorie filtrate (in modo che qualsiasi categoria che non sia una figlia di questa sia al sicuro dall’essere saltata)
  • Aggiungere tag, in modo che se un topic ha questo tag, non verrà rimosso.
10 Mi Piace

Questo non ha senso per me. Perché non usare i permessi delle categorie per limitare ciò che i gruppi vedono?

4 Mi Piace

Perché voglio che possano vedere quelle categorie, ma solo se si impegnano a raggiungerle. Ad esempio, per vedere di cosa si discute in quel progetto specifico prima di registrarsi.

Ma nella pagina principale, non voglio che vengano bombardati da argomenti che non li interessano. Il modo migliore sarebbe ignorarli con la funzione “osserva/ignora”, ma è troppo complicato per loro. L’altra opzione sarebbe registrarsi al gruppo, andare alla pagina della categoria per leggere di cosa si discute e poi disiscriversi dal gruppo. Sono troppi clic per la maggior parte di loro, oltre al fatto che non si azzarderebbero a farlo.

L’ultima opzione è l’impostazione della categoria «rimuovi dagli ultimi», ma questa impostazione influisce su tutti gli utenti, anche su quelli che stanno seguendo quella categoria. Con questo metodo, ho l’equivalente di «rimuovi dagli ultimi», ma solo per alcuni utenti e per tutte le pagine che desidero.

Spero sia più chiaro.

2 Mi Piace

Questi miglioramenti sono stati implementati.

4 Mi Piace

Trovo questa cosa molto interessante. Potrei vedere un esempio o unirmi a un forum dove questo componente è installato?

1 Mi Piace

Inoltre, filtrare con questo componente comporta anche che i post non vengano inviati tramite l’email di riepilogo? Perché sarebbe FANTASTICO.

1 Mi Piace

No, non lo fa.
Non rimuove l’accesso al post, lo nasconde semplicemente tramite CSS.
I topic vengono comunque inviati all’utente, con l’istruzione di non visualizzarli.
L’obiettivo non è rimuovere l’accesso, ma semplicemente nasconderli dalla pagina principale (o da qualsiasi altra pagina scelta).

Mi dispiace, non l’ho installato su un forum senza login, ma sentiti libero di fare domande qui o in privato.

2 Mi Piace

Grazie!

Cosa significa questa parte?

1 Mi Piace

Se guardi il codice sorgente della pagina, le informazioni sull’argomento vengono inviate. Tuttavia, il componente del tema ordina di ignorarle.

1 Mi Piace

Funziona ‘solo’ sull’visualizzazione delle cose durante la navigazione. Non è una funzione di silenziamento o ignoramento. Tuttavia, trovo questa soluzione molto interessante per alcuni utilizzi. Complimenti a @oca per questo lavoro!

2 Mi Piace

Darò un’occhiata più da vicino. Grazie ancora!

1 Mi Piace

Ciao, ho installato questo componente del tema e ora ho difficoltà a configurarlo. Quando provo a scegliere i tag e le categorie filtrate, i miei non sembrano apparire. Ad esempio, abbiamo sicuramente un tag FAQ, ma senza successo: non riesco a selezionarlo. Ho anche provato a digitare semplicemente il tag, ma anche questo non funziona.

2 Mi Piace

Hai attivato i tag nel Dashboard? Si trovano in Impostazioni/Tag. La prima casella in cima all’elenco dei tag serve per attivarli. Una volta attivati, tutti i tag che crei dovrebbero funzionare.

1 Mi Piace

Sì, i tag sono abilitati.

1 Mi Piace

Il parametro delle impostazioni non sa quali tag esistano. Devi scrivere qui il nome del tag, cliccare su create: 'faq' e così il nome del tag verrà selezionato. Puoi selezionare quanti tag sono necessari; basta che uno di essi sia presente per rendere visibile il post.

Fai attenzione: se il tuo account ha privilegi di amministratore, allora ha permessi completi per ogni categoria, ma nascondere una categoria avviene verificando se l’account può effettivamente creare un nuovo post. Il tuo può farlo, quindi il tuo account sarà in grado di vedere ogni post ovunque. Per testare il componente, ti consiglio di creare un account di prova per vedere la stessa cosa che vedrebbe un utente.

2 Mi Piace

Grazie. Credo di aver fatto funzionare tutto e sono molto entusiasta di vedere come andrà. Apprezzo molto il tuo lavoro.

2 Mi Piace

Potrebbe essere fatta un’eccezione per le persone che stanno monitorando una categoria?

1 Mi Piace