Consenti agli utenti di bloccare parole chiave

|||
|-|-|-|
| :information_source: | Riepilogo | Questo componente del tema consente agli utenti di bloccare parole chiave. Richiede la creazione di tre campi utente personalizzati nelle impostazioni di amministrazione per funzionare.
| :eyeglasses:|Anteprima| Non posso visualizzare l’anteprima su theme-creator perché richiede la creazione di campi utente, ma ho incluso screenshot in basso. |
| :hammer_and_wrench:|Repository| Github - a-very-old-sock/discourse-keyword-block |
| :question:|Guida all’installazione|Come installare un tema o un componente del tema|
| :open_book:|Nuovo ai temi di Discourse?| Guida per principianti all’utilizzo dei temi di Discourse

<!- Riempire “repoName” e “repoURL” per il pulsante di installazione automatica →

Installa questo componente del tema

<!- Descrivere questo tema/componente in una o due frasi →

Questo componente del tema consente agli utenti di bloccare parole chiave, specificate dall’utente in Preferenze > Profilo. Richiede la creazione di tre campi utente personalizzati nelle impostazioni di amministrazione per funzionare.

<!- Aggiungere screenshot (se applicabile) →

Blocca parole chiave nel titolo o nell’estratto del topic:

Blocca topic o risposte che contengono la parola chiave, così come i topic suggeriti che contengono la parola chiave:

<!- Aggiungere maggiori dettagli e spiegare le impostazioni (se applicabile) →

Questo componente del tema consente a un singolo utente di specificare parole chiave che non desidera vedere, e nasconde i topic e le risposte contenenti tali parole chiave con un link per mostrarle comunque. Le parole monitorate sono un’impostazione dell’amministratore che si applica a tutti gli utenti su tutto il sito; questo consente ai singoli utenti di specificare le proprie parole chiave che non desiderano vedere.

Scenario di esempio: un forum di animali domestici potrebbe avere un thread generale sulla gestione del pelo degli animali dove il topic principale non è etichettato con uno specifico tipo di animale. L’utente A risponde riguardo al proprio cane, l’utente B risponde riguardo al proprio gatto, ma l’utente A non vuole vedere nulla sui gatti. Ciò che fa questo componente del tema è consentire all’utente A di inserire “gatto” nella propria lista di blocco, e quindi ovunque “gatto” appaia in un topic o in una risposta, lo sostituisce con “Bloccato perché contiene gatti” con un clic per mostrarlo comunque.

L’utente deve specificare un elenco di parole chiave bloccate separate da virgole in un campo utente personalizzato in Preferenze > Profilo, e può specificare se le parole chiave da bloccare fanno distinzione tra maiuscole e minuscole o devono corrispondere all’intera parola. (La distinzione tra maiuscole e minuscole e la corrispondenza dell’intera parola si applicano all’intera lista di blocco, non alle singole parole chiave).

Questo componente del tema richiede di creare tre campi utente personalizzati in Amministrazione > Personalizza > Campi utente per funzionare. Per impostazione predefinita, le impostazioni del componente del tema si aspettano che questi campi utente siano 1, 2 e 3 nell’ordine elencato di seguito. Se hai altri campi utente personalizzati definiti, dovrai inserire i numeri corretti dei campi utente nelle impostazioni del componente del tema. (La numerazione dei campi utente inizia da 1, quindi conta dall’alto verso il basso l’elenco di quanti altri campi utente hai definito). Vedi la guida Meta Creazione e configurazione di campi utente personalizzati per ulteriori dettagli.

1 - Elenco dei termini bloccati dall’utente

Tipo di campo: Campo di testo

Nome del campo: (qualsiasi nome va bene qui) Termini bloccati

Descrizione del campo: (qualsiasi descrizione va bene qui) Blocca parole o frasi che appaiono nei post o nei topic. Separate da virgole. Per bloccare un nome utente, includi @ se è selezionata la corrispondenza dell’intera parola.

:white_check_mark: Modificabile dopo la registrazione
:cross_mark: Richiesto alla registrazione
:cross_mark: Mostra sul profilo pubblico
:cross_mark: Mostra sulla scheda utente
:cross_mark: Ricercabile

2 - Distinzione tra maiuscole e minuscole

Tipo di campo: Conferma

Nome del campo: (qualsiasi nome va bene qui) Termini bloccati - distinzione maiuscole/minuscole

Descrizione del campo: (qualsiasi descrizione va bene qui) Le parole nell’elenco “Termini bloccati” fanno distinzione tra maiuscole e minuscole.

:white_check_mark: Modificabile dopo la registrazione
:cross_mark: Richiesto alla registrazione
:cross_mark: Mostra sul profilo pubblico
:cross_mark: Mostra sulla scheda utente
:cross_mark: Ricercabile

3 - Ricerca parole intere o parziali

Tipo di campo: Conferma

Nome del campo: (qualsiasi nome va bene qui) Termini bloccati - parole intere

Descrizione del campo: (qualsiasi descrizione va bene qui) I termini bloccati devono apparire come parole intere, non come parole parziali

:white_check_mark: Modificabile dopo la registrazione
:cross_mark: Richiesto alla registrazione
:cross_mark: Mostra sul profilo pubblico
:cross_mark: Mostra sulla scheda utente
:cross_mark: Ricercabile

Il css sottostante è incluso nel componente del tema e impedirà la visualizzazione di eventuali campi utente personalizzati nel modulo di registrazione. Se hai altri campi utente personalizzati che desideri visualizzare nel modulo di registrazione, dovrai sovrascriverlo con il tuo css personalizzato.

.login-form .user-fields {
    display: none;
}

Ho testato questo solo con il tema predefinito. I post e i topic vengono bloccati quando le categorie sono impostate per visualizzare Categorie/Ultime e Categorie/Principali, ma non in Categorie/In primo piano o in nessuna delle viste a griglia delle categorie. È improbabile che io cambi questo perché non ne ho bisogno per il mio sito, ma le pull request sono benvenute.

Attualmente questo blocca solo un post che contiene una parola chiave nel titolo o nell’estratto visibile nel browser. Non sono riuscito a capire come controllare il contenuto dell’intero post quando si visualizzano i risultati di ricerca o un elenco di topic, ma sarei lieto di ricevere qualsiasi idea su come farlo.

Ho intenzione che questo funzioni anche sulla vista di ricerca a pagina intera, ma dal 24/02/2023 sto attualmente lottando per farlo funzionare. Modificherò questo se riuscirò a far funzionare il blocco sulla ricerca.

Questo è compatibile con il componente del tema Topic Excerpts; non è compatibile con Topic List Previews. Non l’ho testato in modo estensivo con altri componenti del tema.

3 Mi Piace

Dopo aver creato campi utente personalizzati e abilitato il componente, ottengo questo:

Qualche idea su cosa stia cercando di avvertirmi? A causa di questo, forse:

Il tema/componente User Keyword Blocker sta generando errori: TypeError: null is not an object (evaluating 'e.match')

backtrace
Message

Il tema/componente User Keyword Blocker sta generando errori:
TypeError: null is not an object (evaluating 'e.match')

Backtrace

viewingCategoryId@https://foorumi.katiska.eu/theme-javascripts/2d7e05cf5f7eb3e5f8699871f25f32a21d9221c2.js?__ws=foorumi.katiska.eu:209:77
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:71
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:3677:13
get@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:56
Ee@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1324:40
map@[native code]
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:5042:163
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:71
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:3677:13
get@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:56

Env

HTTP HOSTS: foorumi.katiska.eu

Quindi… cosa diavolo ho sbagliato?

1 Mi Piace

Hmm, non sono sicuro, non sono riuscito a riprodurlo né con un campo utente appena creato né con un campo utente inesistente.

Sembra che tu abbia il tema predefinito? Hai altri componenti del tema abilitati? Sembra che abbia a che fare con la corrispondenza regex, ma non dovrebbe generare errori se non trova nulla.

Certo, ho anche altri componenti :wink: Ma certo, potrebbe esserci un conflitto tra questo e qualche altro componente o plugin.

Cercherò di approfondire un po’ a un certo punto.

E a quel punto è successo ora :wink:

Il conflitto si verifica tra questo e anteprima elenco argomenti. Almeno nella mia configurazione.

Quindi lascio che tu e @merefield litighiate su chi dei due (chi? Odio davvero l’inglese) risolverà e cosa :wink:

1 Mi Piace

Troppo impegnato per supportare conflitti con componenti tematici di terze parti, mi dispiace, ma sono aperto a PR. Per ora dovrai solo decidere tra loro. :slight_smile:

2 Mi Piace

Mi chiederei se questo potrebbe essere utilizzato per estendere la funzione di disattivazione dell’utente?
Ad esempio, mettere l’utente disattivato nella lista dei bloccati per nascondere le risposte all’utente disattivato?

Penso che sia possibile in teoria, ma al momento non trovo un modo semplice per farlo. Al momento quello che sto facendo è usare decorateCooked, che non sembra consentire un facile accesso all’elemento padre dove si trovano le informazioni della risposta. Potrei armeggiare ancora un po’ per vedere se riesco a farlo funzionare, ma non prometto nulla.

Questo bloccherà le menzioni di un nome utente nel post se il nome utente è incluso nella lista di blocco; se la corrispondenza di parola intera è attiva, il nome utente nella lista di blocco deve includere la @menzione, ma se la corrispondenza di parola intera è disattivata, allora può essere incluso solo il nome utente senza @.

1 Mi Piace

Non credo che sarò in grado di renderli compatibili, ma ho annotato nell’OP che non sono compatibili. Sono benvenuti i PR.

Mi scuso. Ci sto dando un’occhiata. Quello che intendevo con estendere il blocco/muto utente. È aggiungere il nome utente a un elenco di parole bloccate. La mia teoria è che forse il nome utente si trova in:

[quote=“asc, post:9, topic:256228”]

Quindi, se ad esempio aggiungessi il tuo nome utente “asc”, qualsiasi risposta ai post con quanto sopra verrebbe mostrata come nascosta.

Solo per confermare, la parola bloccata non viene mostrata? Solo un link per mostrare il post? O la parola osservata può essere sovrascritta per non mostrare la parola bloccata?

Se così fosse, questo si avvicinerebbe al blocco più completo che alcuni utenti desiderano.