---
url: 'https://dxpr.com/ar/hc/documentation/learn-dxpr-builder/development/architecture'
title: 'البنية | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T01:25:19+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  يتألف DXPR Builder من ثلاثة أجزاء: مُنسِّق حقل بلغة PHP، ومحرّر
  يعمل في المتصفح، ومجموعة مسارات يستدعيها المحرّر
  لحفظ البيانات وجلبها. تشرح هذه الصفحة كيف تتلاءم معًا.
  مُنسِّق الحقل
  المحتوى HTML مخزّن في حقل نصوص Drupal عادي (text أو
  text_long أو text_with_summary). ويصبح الحقل قابلًا للتحرير عندما
  يستخدم عرضُه المُنسِّق DXPR Builder
  (dxpr_builder_text، في
  src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php).
  يحمّل المُنسِّق المحرّر فقط عندما تتحقق هذه كلها:
tags:
  - 'Architectuur en API’s'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: البنية
      description: |-
        يتألف DXPR Builder من ثلاثة أجزاء: مُنسِّق حقل بلغة PHP، ومحرّر
        يعمل في المتصفح، ومجموعة مسارات يستدعيها المحرّر
        لحفظ البيانات وجلبها. تشرح هذه الصفحة كيف تتلاءم معًا.
        مُنسِّق الحقل
        المحتوى HTML مخزّن في حقل نصوص Drupal عادي (text أو
        text_long أو text_with_summary). ويصبح الحقل قابلًا للتحرير عندما
        يستخدم عرضُه المُنسِّق DXPR Builder
        (dxpr_builder_text، في
        src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php).
        يحمّل المُنسِّق المحرّر فقط عندما تتحقق هذه كلها:
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T01:25:19+0000'
      dateModified: '2026-10-24T09:09:48+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/ar/hc/documentation/learn-dxpr-builder/development/architecture'
      articleSection: 'Architectuur en API’s'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/ar/hc/documentation/learn-dxpr-builder/development/architecture'
      description: |-
        يتألف DXPR Builder من ثلاثة أجزاء: مُنسِّق حقل بلغة PHP، ومحرّر
        يعمل في المتصفح، ومجموعة مسارات يستدعيها المحرّر
        لحفظ البيانات وجلبها. تشرح هذه الصفحة كيف تتلاءم معًا.
        مُنسِّق الحقل
        المحتوى HTML مخزّن في حقل نصوص Drupal عادي (text أو
        text_long أو text_with_summary). ويصبح الحقل قابلًا للتحرير عندما
        يستخدم عرضُه المُنسِّق DXPR Builder
        (dxpr_builder_text، في
        src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php).
        يحمّل المُنسِّق المحرّر فقط عندما تتحقق هذه كلها:
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: الرئيسية
            item: 'https://dxpr.com/ar'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: ar
---
[Help Center](/ar/hc)/[Documentation](/ar/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Extend](/hc/documentation/learn-dxpr-builder/extend) /[Architectuur en API’s](/hc/documentation/learn-dxpr-builder/extend/architecture) # البنية.

 Learn DXPR BuilderExtendArchitectuur en API’s

   ## In this guide

يتألف DXPR Builder من ثلاثة أجزاء: مُنسِّق حقل بلغة PHP، ومحرّر يعمل في المتصفح، ومجموعة مسارات يستدعيها المحرّر لحفظ البيانات وجلبها. تشرح هذه الصفحة كيف تتلاءم معًا.

## مُنسِّق الحقل

المحتوى HTML مخزّن في حقل نصوص Drupal عادي (`text` أو `text_long` أو `text_with_summary`). ويصبح الحقل قابلًا للتحرير عندما يستخدم عرضُه المُنسِّق **DXPR Builder**(`dxpr_builder_text`، في `src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php`).

يحمّل المُنسِّق المحرّر فقط عندما تتحقق هذه كلها:

- أن يكون المشاهِد مُحاسَبًا: المستخدم 1، أو حساب نشط يملك `edit with dxpr builder` وغير مستبعد من تحرير DXPR Builder؛
- أن يجوز للمشاهِد تحديث الكيان؛
- أن يحمل الحساب عنوان بريد إلكتروني؛
- ألا تُتجاوَز حدود المستخدمين والمحتوى الخاصة بالترخيص؛
- ألا يكون الموقع في قائمة حظر خادم الترخيص، وألا تكون الصفحة صفحة مراجعات.

ويحصل الباقون على HTML المعالَج: رموز المسارات موسّعة وكتل Drupal وطرق العرض معروضة في عناصرها النائبة وسمات المحرّر `data-az*`مزالة والمكتبات التي يحتاجها المحتوى مرفقة. ولا يُخزَّن مخرج المستخدمين المسجلين مؤقتًا (`max-age` 0)، لأنه يحمل إعدادات خاصة بكل مستخدم.

## المحرّر

المحرّر مجموعة ملفات JavaScript تُحمَّل كمكتبة `dxpr_builder/editor.builder`. وهي تأتي من DXPR CDN، أو من مجلد `dxpr_builder/` الخاص بالوحدة عندما يحمل بناءً محليًا؛ ولا يظهر إعداد **مصدر الأصول** في الإعدادات العامة إلا عندها. يحلّل المحرّر HTML الخاص بالحقل إلى شجرة كائنات عناصر ويعيده كتابة إلى HTML عند الحفظ.

تأتي أنواع العناصر من مكانين في `dxpr_builder/build/`:

| المجلد | أنواع العناصر |
|---|---|
| `dxpr-builder/core-elements/` | الحاوية والمقطع والصف والعمود والتبويبات ولوحات التبويب والطي والشرائح التابعة لها |
| `dxpr-elements/elements/` | عناصر المحتوى وعناصر التخطيط القابلة للطي والدوّار والطبقات المتموضعة |

يحتفظ كل عنصر بإعداداته في HTML الخاص به: سمات `data-azat-*`وفئات وأنماط مضمّنة. وHTML المخزّن هو السجل الوحيد للتخطيط؛ فلا مخزن تخطيط منفصل. [العناصر المخصصة](/ar/hc/documentation/learn-dxpr-builder/development/custom-elements) تعرض الصيغة.

### تحليل HTML الحالي

تُرسَم الوسوم دون سمات المنشئ إلى عناصر عندما يحمّلها المحرّر. فتصبح حاويات Bootstrap وصفوفه وأعمدته مقاطع وصفوفًا وأعمدة. وتصبح المكوّنات المتعرَّف عليها عناصرها، مثل الأزرار والتنبيهات والبطاقات والاقتباسات والصور والأيقونات وأشرطة التقدم والتبويبات والقابلة للطي. وتصبح النصوص والجداول والوسوم المضمّنة الأخرى عناصر نص، ويصبح `<iframe>` عنصر HTML. وتُسقَط وسوم `<script>` و`<style>` السائبة والتعليقات. والقواعد في `dxpr-builder/base-element/parse-html.js`.

## المسارات التي يستدعيها المحرّر

يحفظ المحرّر عبر `/dxpr_builder/ajax` ويرفع الملفات عبر `/dxpr_builder/ajax/file_upload` ويبلغ الذكاء الاصطناعي عبر `/dxpr_builder/ajax/ai/*`. وتتحقق معظم المسارات من فحص وصول المستخدم المُحاسَب ورمز CSRF؛ والقائمة الكاملة مع متطلبات الوصول في [مرجع API](/ar/hc/documentation/learn-dxpr-builder/development/api#editor-routes).

## كيانات الإعدادات

| نوع الكيان | بادئة الإعدادات | يحمل |
|---|---|---|
| `dxpr_builder_page_template` | `dxpr_builder.page_template` | تخطيطات صفحة كاملة |
| `dxpr_builder_user_template` | `dxpr_builder.user_template` | مقاطع حفظها المحرّرون لإعادة الاستخدام |
| `dxpr_builder_profile` | `dxpr_builder.dxpr_builder_profile` | قيود كل دور على العناصر والكتل وطرق العرض والقوالب ومجموعات الأيقونات وأزرار محرر النصوص |

## التحقق من الترخيص

مفتاح المنتج هو JWT. فيرسل `DxprBuilderLicenseService` إلى خادم تراخيص DXPR الذي يعيد حالة الترخيص وحدّيه للمستخدمين والمحتوى؛ وتُخزَّن النتيجة مؤقتًا. ودون مفتاح منتج تنطبق الفئة المجانية: مستخدم واحد و100 عنصر محتوى. وتُبقي الخدمة أيضًا قائمة الخادم لمحرّري هذا الموقع متزامنة.