Obbligare gli utenti a scegliere una categoria

Voglio che gli utenti scelgano manualmente una categoria quando creano un nuovo post.
Ho già controllato gli argomenti:

https://meta.discourse.org/t/invite-people-to-choose-category-before-create-a-new-topic/214077
https://meta.discourse.org/t/require-category-selection-before-writing-topic/66236/15

ma nessuno di essi sembra affrontare questo problema.
Ho deselezionato Consenti argomenti non categorizzati.

Il problema è che una categoria viene precompilata? In tal caso, potresti cercare l’impostazione del sito “Categoria predefinita del compositore”.

4 Mi Piace

Sì, questo era il problema.

Ho appena reimpostato quell’impostazione e ora funziona come previsto. Grazie! :raising_hands:

Ho notato che quando quell’impostazione è impostata su nessuna categoria, non consente all’utente di fare clic e digitare e mostra un messaggio per scegliere una categoria, ma a volte le persone non leggono immediatamente il testo. Per caso sai se è possibile mostrare un “pop up” quando l’utente fa clic sull’area del messaggio, prima di scegliere una categoria?


MODIFICA: Dopo aver provato molte opzioni che Claude e ChatGPT hanno offerto per questo, ho finito per rimuovere la proprietà “Disabilitato”. Quindi gli utenti possono ancora fare clic e scrivere il loro messaggio, ma quando nessuna categoria è selezionata e tentano di inviare, vedono l’errore rosso/arancione che chiede di scegliere una categoria. Questo è in realtà un comportamento migliore, secondo me.

Per altri che cercano di fare lo stesso, ecco il Javascript che ho aggiunto alla scheda head in un nuovo componente che ho creato chiamato Unlock Composer:

<script type="text/discourse-plugin" version="0.8">
  const observer = new MutationObserver(() => {
    const textarea = document.querySelector(".d-editor-input[disabled]");
    if (textarea) {
      textarea.removeAttribute("disabled");
      textarea.setAttribute("placeholder", "Select a category before submitting");
      textarea.style.cursor = "text";
    }
  });

  observer.observe(document.body, { childList: true, subtree: true });
</script>

Non sono uno sviluppatore. Questo era solo ciò che ChatGPT ha suggerito e funziona. Se qualcuno vede come questo può essere migliorato, per favore condivida.

Sarebbe possibile condividere uno screenshot di questo in azione, per favore.

Quando clicco su Nuovo argomento, viene visualizzato questo:

Come puoi vedere, non c’è una categoria predefinita. Ora, posso digitare il mio messaggio (a differenza del comportamento predefinito, che blocca l’area del messaggio), anche senza che sia stata selezionata una categoria:

Se provo a inviare, vedo questo:

Spero questo aiuti.

1 Mi Piace

@alltiagocom eccellente, grazie!

1 Mi Piace

Penso che questo sia normalmente il comportamento predefinito. :thinking: Hai per caso un modello di argomento impostato?

Prego!

Ho appena chiesto a ChatGPT se c’è un modo per semplificare un po’ di più lo script e ha rimosso la prima riga, relativa all’API. Ho aggiornato il mio post con lo script finale, nel caso tu voglia usarlo.

1 Mi Piace

Nessun modello.

Ma credo che questo non sia il comportamento predefinito, perché anche il segnaposto originale dice qualcosa come “Seleziona una categoria prima di digitare qui”, e il cursore cambia in una freccia con un simbolo :prohibited:. Non mi permette di fare clic e digitare, a meno che non scelga la categoria.

Mi aspetterei che accada se hai un modello di argomento impostato su una delle tue categorie. Senza impostarne nessuno, dovrebbe permetterti di accedere all’area di composizione prima di selezionare una categoria. La blocca quando si utilizzano modelli di argomento in modo che le persone non aggirino accidentalmente quel modello digitando prima nell’area di composizione e poi selezionando una categoria.

Ho appena fatto un rapido test sul mio sito e, senza una categoria predefinita o modelli di argomento, posso accedere all’area di composizione senza essere bloccato finché non seleziono una categoria.

2 Mi Piace

Strano… ho appena disabilitato il componente che ho creato, ho riprovato e ora mi permette di scrivere. Non è bloccato :confused:

Potrebbe essere un problema di cache dopo che l’ho impostato su (nessuna categoria) o qualcos’altro? Cache sul server stesso, perché sia su Chrome che su Firefox, con account utente diversi, ho avuto lo stesso comportamento. Uso Cloudflare e ho notato che a volte ci sono problemi con il mio forum che sembrano essere correlati alla cache di Cloudflare. Di nuovo, non sono un esperto, quindi sto solo ipotizzando…

Ok, penso di essermi sbilanciato troppo…
Pochi minuti dopo, è tornato all’altro comportamento. È bloccato. E quando ispeziono il composer, vedo questo:

Suppongo che mi atterrò al Component, allora.

2 Mi Piace

Se funziona come desideri, allora :chefs_kiss:

Per curiosità, se hai installato il plugin data explorer, potresti eseguirlo solo per vedere cosa dice:

SELECT id as category_id, topic_template
from categories

Ho appena testato questo su un altro sito (che per caso è tedesco come impostazione predefinita) e abbiamo notato che è stato aggiunto un template furbo alla categoria fittizia Non categorizzato, che sembra aver causato lo stesso comportamento su quel sito.

Ho appena notato che anche sul forum di Obsidian il comportamento è lo stesso. È bloccato finché non scelgo una categoria, quindi è probabilmente il nuovo comportamento?

Non ho il plugin data explorer, mi dispiace.

Non credo. :thinking: Su entrambi i siti aggiornati di recente su cui ho testato, il comportamento è lo stesso di quanto mi aspetterei (nessuna categoria predefinita o modello di argomento = libero di digitare senza scegliere prima una categoria).

Quello che non siamo riusciti a capire è da dove provenisse il modello di argomento Non categorizzato sul sito in lingua tedesca. Uno aggiunto automaticamente di soppiatto per qualsiasi motivo interromperebbe la funzionalità prevista senza che nessuno se ne accorga.

Ne hai uno nel tuo? (E se potessi condividere la tua localizzazione predefinita sarebbe utile anche quello)

/c/uncategorized/edit/topic-template

ETA: In alternativa all’esploratore di date, puoi anche filtrare i tuoi log dello staff per “modello di argomento” e vedere se ci sono informazioni aggiuntive lì.

(Aggiungerò anche il link filtrato che Moin ha condiviso di seguito)

/admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22topic_template%22%7D

È un ottimo plugin, lo consiglio vivamente. :slight_smile:

3 Mi Piace

Penso che sia un po’ difficile filtrarlo nell’interfaccia perché puoi filtrare solo per azioni e non per soggetti. Ci possono essere molti log per l’azione “modifica impostazioni categoria”. Ma puoi aggiungere un filtro soggetto all’URL: /admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22topic_template%22%7D

2 Mi Piace

ti faresti un grande favore installandolo perché è super utile. :slight_smile:

3 Mi Piace

È strano che il forum di Obsidian si comporti allo stesso modo del mio. Chi può dirlo…

Anche vuoto. In realtà non credo di avere alcun modello, da nessuna parte.

1 Mi Piace

Grazie Lilly (e grazie @JammyDodger) per aver condiviso questo plugin. Ci darò sicuramente un’occhiata.

1 Mi Piace

Penso che dovresti essere in grado di vedere il comportamento predefinito su try.discourse.org, se sei ancora curioso. No, mi sbagliavo. Try ha una categoria predefinita impostata.

Erano quelli dimenticati che speravo di riportare alla luce. :slight_smile: Ma se non ce n’è uno aggiunto automaticamente a Non categorizzato, allora penso che questo escluda un potenziale bug, il che è un bene. :+1:

Ci sono anche i log dello staff (usando il link che Moin ha condiviso), ma sembra che tu sia soddisfatto della tua soluzione, quindi smetterò di chiederti altre informazioni. :slight_smile: