البنية.

Learn DXPR BuilderExtendArchitectuur en API’s

يتألف 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 المخزّن هو السجل الوحيد للتخطيط؛ فلا مخزن تخطيط منفصل. العناصر المخصصة تعرض الصيغة.

تحليل 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.

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

نوع الكيان بادئة الإعدادات يحمل
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 عنصر محتوى. وتُبقي الخدمة أيضًا قائمة الخادم لمحرّري هذا الموقع متزامنة.