كيف يمكنني تكوين كائنات المصفوفة في الإضافة؟ لقد جربت json_schema، لكن تكوين خصائص الكائن لا يعمل مع محددات مثل category، حيث يمكن إدخال النص فقط. أما type: objects فلا يعمل على الإطلاق في تكوين الإضافة.
تكوين 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: "إعدادات خدمة العملاء حسب الفئة",
additionalProperties: false, # منع إرسال حقول غير معرفة
required: %w[category customers], # كلا الحقلين إلزاميان
properties: {
category: {
type: "category",
description: "فئة المنتدى المرتبطة",
label: "الفئة"
},
customers: {
type: "usernames", # مستخدمون متعددون كبديل لاسم المستخدم الواحد username
description: "حسابات خدمة العملاء المخصصة لهذه الفئة، تدعم الاختيار المتعدد",
label: "مستخدمو خدمة العملاء"
}
}
}
}
end
end
end
end
end
نعم، بالتأكيد يمكن ذلك. لكن type:objects لا يدعم أيضًا type:category. احتياجي هو اختيار الفئة والمجموعة.
أهلاً، إذن يتم إضافة إعدادات الكائن مباشرة إلى ملف settings.yml، ويجب تنسيقه بهذا الشكل:
oauth2_category_example:
type: objects
default: []
area: "oauth2"
schema:
name: category_rule
identifier: name
properties:
name:
type: string
required: true
label: اسم القاعدة
description: تسمية توضيحية لهذه القاعدة
category:
type: categories
required: true
label: الفئة
description: الفئة التي تنطبق عليها هذه القاعدة
validations:
max: 1
groups:
type: groups
label: المجموعات
description: المجموعات المرتبطة بهذه الفئة
مما سيؤدي إلى ظهور قائمة منسدلة للفئة بالشكل التالي
هل لا يدعم تحديد type:category كخيار واحد؟
وفقًا لهذا التكوين
quectel_online_customer_category_customer_group:
type: objects
default: []
schema:
name: "تصنيف مجموعات خدمة العملاء"
identifier: name
properties:
name:
type: string
required: true
label: الاسم
description: الاسم
category:
type: categories
required: true
label: "التصنيف"
description: "اسم التصنيف، يرجى الاطلاع على صفحة <a href=\"/categories\" target=\"_blank\">جميع التصنيفات</a>"
group_name:
type: groups
required: true
label: "اسم مجموعة خدمة العملاء"
description: "اسم مجموعة خدمة العملاء، أحرف إنجليزية، يرجى الاطلاع على صفحة <a href=\"/admin/groups\" target=\"_blank\">مجموعات خدمة العملاء</a>"
لقد واجهت الخطأ التالي:
حدث خطأ:
- أثناء العرض:
{{outlet}} لـ -top-level
-top-level
{{outlet}} لـ application
application
DiscourseRoot
{{outlet}} لـ admin
admin
{{outlet}} لـ admin.schema
schema
SchemaSettingNewEditor
SchemaSettingField
SchemaSettingTypeCategories
CategorySelector
section-link.gjs:149
تم محاولة إعادة العرض، لكن تطبيق Ember واجه خطأً غير قابل للاسترداد أثناء العرض. يجب إعادة تحميل التطبيق بعد إصلاح سبب الخطأ.
categories.gjs:13
خطأ غير مُلتقط (في الوعد) TypeError: this.args.value?.map ليس دالة
at SchemaSettingTypeCategories.<anonymous> (categories.gjs:13:9)
هل هذا مرتبط بإصداري؟
Discourse v2026.1.4 — Commits · discourse/discourse · GitHub — Ember v6.6.0
هل لديك أي إعدادات قديمة محفوظة في الإعدادات؟ هل يمكنك محاولة إعادة تعيينها إلى الافتراضي باستخدام زر إعادة التعيين إذا ظهر؟
لم أجد زر إعادة الضبط، والصفحة تظهر كما في لقطة الشاشة، حيث لا يتم عرض العناصر أسفل الفئة.
آه، لست متأكدًا مما قد يسبب الخطأ هناك… لقد اختبرت خيار الفئات مع نوع الكائنات، لذا فأنا أعلم أنه يعمل، ولا ينبغي أن تكون هناك مشكلة مع نسختك. لا يزال لدي تساؤل حول ما إذا كان هناك شيء عالق في حالة سيئة في مكان ما، هل يمكنك تجربة إعداد منفصل باسم جديد فقط للاختبار؟ هل هذا الأمر موجود على GitHub أو في أي مكان آخر حتى أتمكن من تجربته؟
type:categories مقبول، بينما type:category غير مقبول.
إلا أن الإعدادات التالية تعمل بشكل جيد أيضًا في حال اختيار عنصر واحد فقط، وبالتالي لا حاجة إلى type:category.
category:
type: categories
required: true
label: "الفئة"
description: "اسم الفئة"
validations:
max: 1