logologo
البدء
الدليل
التطوير
الإضافات
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
البدء
الدليل
التطوير
الإضافات
API
logologo

بدء سريع

نظرة عامة على تطوير الإضافات
كتابة الإضافة الأولى
هيكل دليل المشروع

تطوير الواجهة الخلفية

نظرة عامة
Plugin
جداول بيانات Collections
عمليات Database
إدارة مصادر بيانات DataSourceManager
إدارة موارد ResourceManager
التحكم في أذونات ACL
Middleware
Cache
Event
سياق طلب Context
نص ترقية Migration
Logger
Telemetry
I18n (تدويل)
Command (سطر الأوامر)
إدارة المهام المجدولة CronJobManager
Test

تطوير الواجهة الأمامية

نظرة عامة
Plugin
Context (السياق)
Router
التحكم في أذونات ACL
إدارة مصادر بيانات DataSourceManager
Resource
Request
Styles & Themes (الأنماط والمظاهر)
Logger
I18n (تدويل)
Test

أخرى

دليل ترقية الإضافات
قائمة اللغات
إدارة التبعيات
البناء
Previous PagePlugin
Next Pageعمليات Database
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#المجموعات

في تطوير إضافات NocoBase، تُعد المجموعة (Collection) أحد المفاهيم الأساسية. يمكنك إضافة أو تعديل هياكل جداول البيانات في الإضافات عن طريق تعريف المجموعات أو توسيعها. على عكس جداول البيانات التي يتم إنشاؤها عبر واجهة إدارة مصدر البيانات، فإن المجموعات المعرفة في الكود عادةً ما تكون جداول بيانات تعريفية على مستوى النظام ولن تظهر في قائمة إدارة مصدر البيانات.

#تعريف المجموعات

وفقًا لهيكل الدليل التقليدي، يجب وضع ملفات المجموعة في الدليل ./src/server/collections. استخدم defineCollection() لإنشاء جداول جديدة، وextendCollection() لتوسيع الجداول الموجودة.

import { defineCollection } from '@nocobase/database';

export default defineCollection({
  name: 'articles',
  title: 'مقالات نموذجية',
  fields: [
    { type: 'string', name: 'title', interface: 'input', uiSchema: { title: 'العنوان', required: true } },
    { type: 'text', name: 'content', interface: 'textarea', uiSchema: { title: 'المحتوى' } },
    {
      type: 'belongsTo',
      name: 'author',
      target: 'users',
      foreignKey: 'authorId',
      interface: 'recordPicker',
      uiSchema: { title: 'المؤلف' },
    },
  ],
});

في المثال أعلاه:

  • name: اسم الجدول (سيتم إنشاء جدول بنفس الاسم تلقائيًا في قاعدة البيانات).
  • title: الاسم المعروض للجدول في الواجهة.
  • fields: مجموعة الحقول، يحتوي كل حقل على سمات مثل type وname.

عند الحاجة إلى إضافة حقول أو تعديل إعدادات لمجموعات الإضافات الأخرى، يمكنك استخدام extendCollection():

import { extendCollection } from '@nocobase/database';

export default extendCollection({
  name: 'articles',
  fields: [
    {
      type: 'boolean',
      name: 'isPublished',
      defaultValue: false,
    },
  ],
});

بعد تفعيل الإضافة، سيقوم النظام تلقائيًا بإضافة حقل isPublished إلى جدول articles الموجود.

TIP

سيتم تحميل الدليل التقليدي قبل تنفيذ جميع طرق load() الخاصة بالإضافات، مما يجنب مشاكل التبعية الناتجة عن عدم تحميل بعض جداول البيانات.

#مزامنة هيكل قاعدة البيانات

عند تفعيل الإضافة لأول مرة، سيقوم النظام تلقائيًا بمزامنة إعدادات المجموعة مع هيكل قاعدة البيانات. إذا كانت الإضافة مثبتة وتعمل بالفعل، فبعد إضافة أو تعديل المجموعات، ستحتاج إلى تنفيذ أمر الترقية يدويًا:

yarn nocobase upgrade

إذا حدثت استثناءات أو بيانات غير نظيفة أثناء المزامنة، يمكنك إعادة بناء هيكل الجدول عن طريق إعادة تثبيت التطبيق:

yarn nocobase install -f

#التوليد التلقائي للموارد (Resource)

بعد تعريف المجموعة، سيقوم النظام تلقائيًا بإنشاء مورد (Resource) مقابل لها، والذي يمكنك من خلاله إجراء عمليات الإنشاء والقراءة والتحديث والحذف (CRUD) مباشرةً عبر واجهة برمجة التطبيقات (API). للمزيد من التفاصيل، راجع إدارة الموارد.