Comment configurer des objets de tableau dans un plugin ? J’ai essayé json_schema, mais les propriétés d’objet ne prennent pas en charge les sélecteurs comme category ; seules les entrées de texte sont possibles. Quant à type: objects, cela ne fonctionne tout simplement pas dans la configuration du plugin.
Configuration de json_schema :
quectel_online_customer_category_customers:
default: "[]"
client: true
json_schema: QuectelOnlineCustomer::SiteSettings::CategoryCustomersJsonSchema
plugins/quectel-online-customer/lib/quectel_online_customer/site_settings/category_customers_json_schema.rb
# frozen_string_literal: true
module QuectelOnlineCustomer
module SiteSettings
class CategoryCustomersJsonSchema
def self.schema
@schema ||= begin
{
type: "array",
uniqueItems: true,
default: [],
items: {
type: "object",
title: "Configuration des clients par catégorie",
additionalProperties: false, # Interdit la soumission de champs non définis
required: %w[category customers], # Les deux champs sont obligatoires
properties: {
category: {
type: "category",
description: "Catégorie du forum associée",
label: "Catégorie"
},
customers: {
type: "usernames", # Sélection multiple d'utilisateurs, remplace le nom d'utilisateur unique
description: "Comptes de service client attribués à cette catégorie, prend en charge la sélection multiple",
label: "Utilisateurs du service client"
}
}
}
}
end
end
end
end
end
Oui, c’est tout à fait possible. Cependant, type:objects ne prend pas non plus en charge type:category. Mon besoin est de pouvoir sélectionner à la fois des catégories et des groupes.
Ah je vois, donc les paramètres de l’objet sont ajoutés directement dans votre settings.yml. Vous voudriez le formater comme ceci :
oauth2_category_example:
type: objects
default: []
area: "oauth2"
schema:
name: category_rule
identifier: name
properties:
name:
type: string
required: true
label: Nom de la règle
description: Une étiquette pour cette règle
category:
type: categories
required: true
label: Catégorie
description: La catégorie à laquelle cette règle s'applique
validations:
max: 1
groups:
type: groups
label: Groupes
description: Groupes associés à cette catégorie
Ce qui produirait un menu déroulant de catégories comme celui-ci
Le type type:category en choix unique n’est-il pas pris en charge ?
Selon cette configuration
quectel_online_customer_category_customer_group:
type: objects
default: []
schema:
name: « Groupe de catégories de service client »
identifier: name
properties:
name:
type: string
required: true
label: Nom
description: Nom
category:
type: categories
required: true
label: « Catégorie »
description: « Nom de la catégorie, veuillez consulter la page <a href=\"/categories\" target=\"_blank\">Toutes les catégories</a> »
group_name:
type: groups
required: true
label: « Nom du groupe de service client »
description: « Nom du groupe de service client, caractères anglais, veuillez consulter la page <a href=\"/admin/groups\" target=\"_blank\">Groupes de service client</a> »
Je rencontre l’erreur suivante :
Une erreur s'est produite :
- Lors du rendu :
{{outlet}} pour -top-level
-top-level
{{outlet}} pour application
application
DiscourseRoot
{{outlet}} pour admin
admin
{{outlet}} pour admin.schema
schema
SchemaSettingNewEditor
SchemaSettingField
SchemaSettingTypeCategories
CategorySelector
section-link.gjs:149
Tentative de nouveau rendu, mais l'application Ember a rencontré une erreur irrécupérable pendant le rendu. Vous devez recharger l'application après avoir corrigé la cause de l'erreur.
categories.gjs:13
Uncaught (in promise) TypeError: this.args.value?.map n'est pas une fonction
at SchemaSettingTypeCategories.<anonymous> (categories.gjs:13:9)
Est-ce lié à ma version ?
Discourse v2026.1.4 — Commits · discourse/discourse · GitHub — Ember v6.6.0
Avez-vous une configuration obsolète enregistrée dans les paramètres ? Pourriez-vous essayer de la réinitialiser aux valeurs par défaut en utilisant le bouton de réinitialisation s’il apparaît ?
Je ne vois pas le bouton de réinitialisation. La page ressemble exactement à la capture d’écran, et les éléments sous la catégorie ne s’affichent pas.
Hmmm, je ne suis pas sûr de ce qui pourrait poser problème là-bas… J’ai testé l’option des catégories avec le type d’objets, donc je sais que ça fonctionne, et ça ne devrait pas venir de ta version. Je me demande toujours si quelque chose est coincé dans un état incorrect quelque part ; tu pourrais essayer un paramètre séparé avec un nouveau nom juste pour tester ? Est-ce que c’est sur GitHub ou quelque part ailleurs, pour que je puisse essayer ?
type:categories est acceptable, mais type:category ne l’est pas.
Cependant, la configuration ci-dessous fonctionne également bien pour le cas où une seule option est sélectionnée, ce qui rend type:category inutile.
category:
type: categories
required: true
label: « Catégorie »
description: « Nom de la catégorie »
validations:
max: 1