Creazione di un campo utente a selezione multipla di Discourse con molte opzioni
Inserire decine o centinaia di scelte una alla volta nell’editor dei campi utente personalizzati di Discourse è noioso. Ho lavorato su uno strumento CLI multifunzione per Discourse chiamato dsc, che rende più semplici e deterministici operazioni come questa utilizzando file locali. Manipolare i Campi Utente Personalizzati è solo una delle tante cose che può fare.
dsc può creare un nuovo campo utente personalizzato da un file YAML, inclusa l’intera lista di opzioni ordinate in un’unica operazione. Il comando ucf è un alias per user-field.
Prima di tutto, elenca i campi utente personalizzati esistenti:
dsc ucf list myforum --format yaml
Questo mostra i loro ID, tipi, opzioni e impostazioni.
Preparare il campo
Crea user-fields.yaml, sostituendo l’URL di origine, la domanda e le opzioni con i tuoi valori. Assicurati che il tuo YAML sia valido: è facile commettere errori.
Ad esempio, ecco un campo a selezione multipla di paesi con 25 opzioni:
version: 1
source: https://forum.example.org
user_fields:
- name: Countries
description: In quali paesi lavori? Seleziona tutte le opzioni applicabili.
field_type: multiselect
editable: true
requirement: on_signup
show_on_profile: false
show_on_signup: true
show_on_user_card: false
searchable: false
options:
- Argentina
- Australia
- Brazil
- Canada
- China
- Denmark
- Egypt
- France
- Germany
- India
- Ireland
- Italy
- Japan
- Kenya
- Mexico
- Netherlands
- New Zealand
- Nigeria
- Norway
- Singapore
- South Africa
- Spain
- Sweden
- United Kingdom
- United States
Questo crea un campo con 25 opzioni, anziché 25 campi separati. Puoi estendere la lista secondo necessità: ho usato questo approccio con successo per un campo con oltre 250 opzioni.
Anteprima, creazione e verifica
dsc ucf push --dry-run myforum user-fields.yaml
# Esamina il piano e il file YAML completo prima di applicarlo.
dsc ucf push myforum user-fields.yaml
dsc ucf show myforum <field-id> --format yaml
Sarò felice di ricevere feedback su dsc, incluse idee per funzionalità mancanti. Crea pure issue sul repo GH.