الترحيل من DXPR Builder 1.x أو 2.x.

تعلّم DXPR Builderابدؤوا من هناالانتقال من منشئ آخر

يحدّث DXPR Builder 3.x في موضعه من أي إصدار 1.x أو 2.x. يبدّل Composer الشيفرة، ويشغّل drush updatedb خطافات التحديث في dxpr_builder.install التي تحوّل الإعدادات والمحتوى. تسرد هذه الصفحة ما تفعله تلك الخطافات، وما تغيّر للشيفرة المخصصة، وكيف تتحققون من النتيجة. تأتي تواريخ الإصدار من وسوم git؛ انظروا الإصدارات الأقدم.

تاريخ الإصدارات باختصار

السلسلة Drupal ملاحظات
7.x-1.x Drupal 7 بيع كـ Glazed Builder، ثم أُعيدت تسميته.
1.x (8.x-1.x) Drupal 8 و9 اسم الآلة للوحدة dxpr_builder منذ أول إصدار 1.x في مايو 2020. وآخر إصدار 1.8.8.
2.x من Drupal 9.3 إلى 11 CKEditor 5 ودعم وحدة Key وأول ميزات الذكاء الاصطناعي. وآخر إصدار 2.8.1.
3.x Drupal 10.2 و11 Bootstrap 5 فقط، ووحدة Key مطلوبة، وترحيلات المحتوى، وتوليد الصفحات والصور بالذكاء الاصطناعي.

لم يتغيّر اسم الآلة بين 1.x و3.x. ويجب ترحيل المحتوى الذي ما زال يحمل وسوم حقبة Glazed على 1.x أو 2.x قبل الترقية؛ فلم يعد 3.x يعيد كتابة اسم Glazed (انظروا أدناه).

المتطلبات قبل أن تبدؤوا

  • Drupal 10.2 أو أحدث، أو Drupal 11 (core_version_requirement في dxpr_builder.info.yml).
  • وحدة Key. وهي اعتماد صلب في 3.x؛ تثبّتها dxpr_builder_update_9020() إذا وجدها drush updatedb مفقودة.
  • مفتاح منتج صادر لـ DXPR Builder 2.0.0 أو أحدث. يرفض نموذج الإعدادات المفاتيح دون ادعاء dxpr_tier.
  • قالب يوفّر Bootstrap 5، أو خيار التحميل لـ Bootstrap 5. لم يعد تحميل Bootstrap 3 و4 موجودًا.

خطوات الترحيل

  1. انسخوا قاعدة البيانات والملفات احتياطيًا:

    drush sql:dump --result-file=backup.sql
    
  2. حدّثوا الشيفرة باستخدام Composer. يُنشر 3.x حاليًا كإصدارات مسبقة، فاسمحوا بها:

    composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies
    
  3. شغّلوا خطافات التحديث وأعيدوا بناء ذواكر التخزين المؤقت:

    drush updatedb
    drush cache:rebuild
    

    تعالج عدة خطافات 3.x كل قيمة حقل DXPR Builder دفعاتٍ (انظروا أدناه). وعلى المواقع الكبيرة تستغرق دقائق، لا ثواني.

  4. افتحوا /admin/dxpr_studio/dxpr_builder/settings وتحققوا من قسم الترخيص. فبعد التحديث 9020 تكون طريقة التخزين وحدة Key ويكون المفتاح DXPR Builder JWT (dxpr_builder_jwt).

  5. تحققوا من تحميل ملفات Bootstrap في الصفحة نفسها. فالمواقع التي كان Bootstrap 3 أو 4 محددًا فيها أصبحت الآن على Bootstrap 5.

  6. افتحوا /admin/dxpr_studio/dxpr_builder/ai_settings وقرّروا ما إذا كانت مفاتيح الذكاء الاصطناعي الثلاثة، المفعّلة افتراضيًا، يجب أن تبقى مفعّلة.

  7. زوروا الصفحات التي تستخدم DXPR Builder وتأكدوا من عرضها وتحريرها بشكل صحيح.

ما تفعله خطافات التحديث

شُحنت الخطافات المرقمة 8005 إلى 8025 في 1.x. ويشغّل موقع 1.x كل شيء من 8026 فصاعدًا؛ ويشغّل موقع 2.8.0 أو 2.8.1 الخطاف 8040 و9014 فصاعدًا. وأسماء الدوال dxpr_builder_update_NNNN().

أُضيفت في 2.x (تُشغَّل عند القدوم من 1.x)

الخطاف ما يفعله
8026 يحدّث تخزين مستخدمي DXPR Builder المركزي.
8027 يضيف كتلة معلومات الترخيص وعمود «DXPR Builder User» إلى View الأشخاص.
8028 ينشئ جدول dxpr_lock لقفل المحتوى.
8029 يضيف كتلة التراخيص إلى لوحة تراخيص المستخدمين.
8030 يبدّل إعداد Bootstrap بعد إزالة خيار «Bootstrap 3 Light».
8031 يُفعّل كتلة معلومات الترخيص حيث ثُبّتت معطّلة.
8032 يزيل المستخدمين المحظورين من تخزين الترخيص.
8033 يهيّئ drm_last_contact.
8034 يثبّت حقل المستخدم dxpr_user_is_disavowed وإجراءَي الإقرار والتنصل للمستخدم.
8035 يهيّئ إعداد hide_reminders.
8036 يرحّل أسماء أزرار شريط أدوات CKEditor 4 في الملفات التعريفية إلى CKEditor 5.
8037 يضيف نمط صورة افتراضيًا للصور سريعة التحميل.
8038 يمسح ذواكر التخزين المؤقت لتسجيل خدمات تكامل وحدة Key.
8039 يصلح أنماط الصور ذات الإعدادات image_scale_and_crop غير المكتملة.
9007 ينشئ مفردات ai_tone_of_voice وai_agent_commands بمصطلحات افتراضية.
9008 يضبط ai_enabled على true ويزيل المفتاح القديم ai_page_enabled.
9009 ينقل drm_last_contact من الإعدادات إلى الحالة.
9010 يمسح ذواكر التخزين المؤقت.
9011 يُفعّل زرّي AI Assistant وAI Tone of Voice في كل ملف تعريفي.
9012 يستعيد ai_page_enabled بالقيمة الافتراضية true.
9013 يضبط افتراضيات ترشيح مخرجات الذكاء الاصطناعي (ai_output_allowed_domains).
9015 يضيف ai_image_enabled بالقيمة الافتراضية true.

أُضيفت في 3.x (تُشغَّل عند القدوم من 1.x أو 2.x)

الخطاف ما يفعله
8040 يوحّد bootstrap إلى bs5؛ وتُعاد كتابة القيمتين 1 (Bootstrap 3) وbs4.
9014 دفعة: يحوّل وسوم Owl Carousel في المحتوى إلى معرض Bootstrap (src/Migration/OwlCarouselMigration.php).
9016 يضيف ai_user_model_selection بالقيمة الافتراضية true.
9017 دفعة: يحوّل عدّادات circliful الدائرية إلى وسوم تقدم Bootstrap (CircleCounterMigration.php).
9018 دفعة: يحوّل وسوم شريط التقدم القديمة إلى بنية تقدم Bootstrap (ProgressBarMigration.php).
9020 يثبّت وحدة Key، وينقل json_web_token إلى كيان Key dxpr_builder_jwt، ويضبط api_key_storage على key ويمسح قيمة النص الصريح.
9021 يملأ بأثر رجعي خاصية type لقوالب المستخدم من وسومها.
9022 دفعة: يضيف data-entity-type وdata-entity-uuid إلى روابط /node/N الداخلية (EntityLinkMigration.php).
9023 دفعة: يصلح تنسيق النص والملخص وقيم الدلتا المحذوفة التي فقدها التحديث 9022 على حقول text_with_summary.
9024 دفعة: يُثري الروابط الداخلية ذات الأسماء المستعارة بالطريقة نفسها كما في 9022 (AliasLinkMigration.php).
9025 يمسح tone_of_voice_vocabulary عندما يشير إلى مفردات لم تعد موجودة.
9026 يمسح json_web_token المحفوظ كنص صريح والمتروك في الإعدادات عندما يكون المفتاح في كيان Key.

لا يوجد تحديث 9019.

ترحيلات المحتوى

يشغّل 3.x ترحيلات المحتوى دفعاتٍ فقط؛ ولم يعد هناك تحويل وقت العرض. وتسرد صفحة حالة الترحيل (/admin/dxpr_studio/dxpr_builder/migration-status) وتقرير الحالة المحتوى المعلّق. وترحّله خطافات التحديث أعلاه، وكذلك إجراءا التشغيل الآن وتشغيل كل الترحيلات المعلّقة على تلك الصفحة. والترحيلات خدمات موسومة بـ dxpr_builder.content_migration (dxpr_builder.services.yml). والدفعة التي تسجّل إخفاقات لا تُعلَّم مكتملة؛ فتُسجَّل العناصر الفاشلة وتبقى معلّقة.

أُزيلت إعادة كتابة السلسلة glazed_to_dxpr التي طبّقها 1.x و2.x وقت العرض. أُسقط اسم Glazed مع 1.0.0 في مايو 2020 ويُفترض أن كل محتوى حقبتَي Glazed وCarbide رُحّل بتلك الإصدارات. وكانت إعادة الكتابة مجرّد استبدال سلسلة. فعلى المواقع التي يذكر محتواها Glazed فقط (مقالات الدعم وروابط التوثيق)، كانت ستعيد كتابة النثر وتكسر الروابط بدل ترحيل الوسوم. والمواقع التي ما زالت تحمل أسماء فئات Glazed في محتوى مخزّن يجب أن تشغّل إصدار 2.x أولًا.

تغييرات الشيفرة المخصصة

منسّق الحقل

معرّف منسّق الحقل هو dxpr_builder_text (التسمية «DXPR Builder»، وsrc/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php)، دون تغيير منذ 1.x. وله إعداد واحد، profile، فارغ للافتراضي حسب الدور أو معرّف ملف تعريفي. تحققوا من أن كل حقل منشئ ما زال يستخدم هذا المنسّق في إعدادات عرضه؛ ويقتصر إصلاح التحديث 9023 على الحقول التي تفعله.

الخطافات

dxpr_builder.api.php توثّق خطافات 3.x. أعيدوا تسمية خطافات Glazed Builder كما يلي:

خطاف Glazed Builder خطاف DXPR Builder 3.x
hook_glazed_builder_classes() hook_dxpr_builder_classes_alter(array &$dxpr_builder_classes)
hook_glazed_builder_buttons_folders() hook_dxpr_builder_element_buttons_folders_alter(array &$dxpr_element_buttons_folders)
hook_glazed_builder_elements_folders() أُزيل؛ لا خطاف بديل.
لا شيء hook_dxpr_builder_icon_sets_alter(array &$icon_sets)، جديد. تُعلَن مجموعات الأيقونات في ملفات MODULE.dxpr_icon_sets.yml.

CSS وفئات الأدوات

يجب أن تستخدم CSS المخصصة التي تستهدف أسماء فئات Glazed أسماء DXPR، مثل dxpr-theme-util وpanel-dxpr وdxpr-builder. وتُوفَّر فئات الأدوات المعروضة في المحرر عبر hook_dxpr_builder_classes_alter().

الإعدادات والنشر

  • أزيلوا json_web_token من أي إعدادات مُسلَّمة؛ فبعد التحديث 9020 يكون المفتاح في كيان Key dxpr_builder_jwt. ويستخدم ذلك المفتاح موفّر الإعدادات، فيُصدَّر المفتاح كـ key.key.dxpr_builder_jwt. بدّلوه إلى موفّر الملف أو البيئة في /admin/config/system/keys لإبعاده عن الصادرات.
  • تشمل صادرات الإعدادات الآن مفردتَي الذكاء الاصطناعي ومصطلحاتهما.
  • تصدّر الملفات التعريفية أسماء أزرار CKEditor 5 في inline_buttons وmodal_buttons.

استكشاف الأخطاء وإصلاحها

إذا لم يُعرض المحتوى بشكل صحيح بعد التحديث:

  1. شغّلوا drush cache:rebuild.
  2. تحققوا من /admin/reports/dblog لرسائل من قناة dxpr_builder؛ فترحيلات الدفعات تسجّل العناصر التي تتخطاها.
  3. تأكدوا من أن إعدادات عرض كل حقل منشئ ما زالت تستخدم منسّق DXPR Builder.
  4. تأكدوا من أن القالب يحمّل Bootstrap 5، أو فعّلوا التحميل في /admin/dxpr_studio/dxpr_builder/settings.

صفحة الإعدادات العامة لـ DXPR Builder بعد التحديث

ما الخطوة التالية؟