نحن نقدم نوعًا جديدًا type: objects إلى الأنواع المدعومة لإعدادات السمات والذي يمكن استخدامه لاستبدال النوع الحالي json_schema والذي نعتزم إيقافه قريبًا.
تعريف إعداد سمة من نوع الكائنات (objects)
لإنشاء إعداد سمة من نوع الكائنات (objects)، قم أولاً بتعريف مفتاح المستوى الأعلى تمامًا مثل أي إعداد سمة آخر والذي سيتم استخدامه كاسم للإعداد.
links: ...
بعد ذلك، أضف الكلمات المفتاحية type و default و schema إلى الإعداد.
links:
type: objects
default: []
schema: ...
يشير type: objects إلى أن هذا سيكون إعدادًا من نوع الكائنات (objects)، بينما تحدد التعليقة default: [] القيمة الافتراضية للإعداد كمصفوفة فارغة. لاحظ أنه يمكن أيضًا تعيين القيمة الافتراضية لمصفوفة من الكائنات (objects) والتي سنوضحها بمجرد تعريف schema.
لتحديد المخطط (schema)، قم أولاً بتعريف name للمخطط (schema) على النحو التالي:
links:
type: objects
default: []
schema:
name: link
بعد ذلك، سنضيف الكلمة المفتاحية properties إلى المخطط (schema) والتي ستسمح لنا بتعريف والتحقق من كيفية ظهور كل كائن.
links:
type: objects
default: []
schema:
name: link
properties:
name: ...
في المثال أعلاه، نذكر أن الكائن (object) link لديه خاصية name. لتحديد نوع البيانات المتوقع، تحتاج كل خاصية إلى تحديد الكلمة المفتاحية type.
links:
type: objects
default: []
schema:
name: link
properties:
name:
type: string
ينص تعريف المخطط (schema) أعلاه على أن الكائن (object) link لديه خاصية name من النوع string، مما يعني أنه سيتم قبول القيم النصية فقط لهذه الخاصية. حاليًا، الأنواع التالية مدعومة:
string: يتم تخزين قيمة الخاصية كسلسلة نصية.integer: يتم تخزين قيمة الخاصية كعدد صحيح.float: يتم تخزين قيمة الخاصية كرقم عشري.boolean: قيمة الخاصية هيtrueأوfalse.enum: يجب أن تكون قيمة الخاصية واحدة من القيم المحددة في الكلمة المفتاحيةchoices.links: type: objects default: [] schema: name: link properties: name: type: enum choices: - name 1 - name 2 - name 3categories: قيمة الخاصية هي مصفوفة من معرفات الفئات الصالحة.groups: قيمة الخاصية هي مصفوفة من معرفات المجموعات الصالحة.tags: قيمة الخاصية هي مصفوفة من أسماء العلامات الصالحة.
مع تعريف المخطط (schema)، يمكن الآن تعيين القيمة الافتراضية للإعداد عن طريق تحديد مصفوفة في YAML على النحو التالي:
links:
type: objects
default:
- name: link 1
title: link 1 title
- name: link 2
title: link 2 title
schema:
name: link
properties:
name:
type: string
title:
type: string
الخصائص المطلوبة
جميع الخصائص المعرفة اختيارية بشكل افتراضي. لتمييز خاصية على أنها مطلوبة، قم ببساطة بتعليق الخاصية بـ required: true. يمكن أيضًا تمييز الخاصية على أنها اختيارية عن طريق تعليق الخاصية بـ required: false.
links:
type: objects
default: []
schema:
name: link
properties:
name:
type: string
required: true
title:
type: string
required: false
التحقق المخصص
بالنسبة لأنواع خصائص معينة، يوجد دعم مدمج للتحقق المخصص الذي يمكن الإعلان عنه عن طريق تعليق الخاصية بالكلمة المفتاحية validations.
links:
type: objects
default: []
schema:
name: link
properties:
name:
type: string
required: true
validations:
min: 1
max: 2048
url: true
التحقق للأنواع string
min_length: الحد الأدنى لطول الخاصية. يجب أن تكون قيمة الكلمة المفتاحية عددًا صحيحًا.max_length: الحد الأقصى لطول الخاصية. يجب أن تكون قيمة الكلمة المفتاحية عددًا صحيحًا.url: يتحقق من أن الخاصية هي عنوان URL صالح. يمكن أن تكون قيمة الكلمة المفتاحيةtrue/false.
التحقق للأنواع integer و float
min: الحد الأدنى لقيمة الخاصية. يجب أن تكون قيمة الكلمة المفتاحية عددًا صحيحًا.max: الحد الأقصى لقيمة الخاصية. يجب أن تكون قيمة الكلمة المفتاحية عددًا صحيحًا.
التحقق للأنواع tags و groups و categories
min: الحد الأدنى لعدد السجلات للخاصية. يجب أن تكون قيمة الكلمة المفتاحية عددًا صحيحًا.max: الحد الأقصى لعدد السجلات للخاصية. يجب أن تكون قيمة الكلمة المفتاحية عددًا صحيحًا.
هيكل الكائنات المتداخلة (Nested objects structure)
يمكن للكائن (object) أيضًا أن يحتوي على خاصية تحتوي على مصفوفة من الكائنات (objects). لإنشاء هيكل كائنات متداخلة، يمكن أيضًا تعليق خاصية بـ type: objects وتعريف المخطط (schema) المرتبط به.
sections:
type: objects
default:
- name: section 1
links:
- name: link 1
url: /some/url
- name: link 2
url: /some/other/url
schema:
name: section
properties:
name:
type: string
required: true
links:
type: objects
schema:
name: link
properties:
name:
type: string
url:
type: string
وصف الإعداد والترجمة المحلية
لإضافة وصف للإعداد في اللغة المحلية en، قم بإنشاء ملف locales/en.yml بالتنسيق التالي مع إعداد السمة من نوع الكائنات (objects) التالي.
sections:
type: objects
default:
- name: section 1
links:
- name: link 1
url: /some/url
- name: link 2
url: /some/other/url
schema:
name: section
properties:
name:
type: string
required: true
links:
type: objects
schema:
name: link
properties:
name:
type: string
url:
type: string
en:
theme_metadata:
settings:
sections:
description: This is a description for the sections theme setting
schema:
properties:
name:
label: Name
description: The description for the property
links:
name:
label: Name
description: The description for the property
url:
label: URL
description: The description for the property
This document is version controlled - suggest changes on github.



