التجهيز المرحلي للمحتوى.
التجهيز المرحلي للمحتوى هو بناء صفحات DXPR Builder ومراجعتها قبل أن يراها الزوار. وهناك طريقتان: موقع تجهيز منفصل تنقلون محتواه إلى الإنتاج، أو مراجعات Drupal والإشراف على المحتوى على موقع واحد. تغطي هذه الصفحة الطريقتين، وتبيّن بدقة ما يفعله حفظ المنشئ بالمراجعات وحالات الإشراف، لأن ذلك يقرر الطريقة المناسبة لكم.
ما يفعله حفظ المنشئ
كل حفظ من المحرّر يشغّل هذه الخطوات:
- يحمّل المراجعة الافتراضية للصفحة، باللغة الجاري تحريرها.
- يتحقق من أنّ المستخدم الحالي يجوز له تحديث الصفحة.
- يكتب HTML الجديد في الحقل.
- إذا كان نوع الكيان يدعم المراجعات، يُنشئ مراجعة جديدة ويجعلها
المراجعة الافتراضية. ويصبح المستخدم الحالي مؤلفها، مع رسالة السجل
Saved with DXPR builderووقت الطلب. - يزيل قفل التحرير لتلك الصفحة والمراجعة، ثم يحفظ الصفحة.
الطلب الكامن وراء الحفظ موضح ضمن نقاط نهاية API.
فكل حفظ على عقدة أو كتلة سحب وإفلات يُنشئ مراجعة جديدة، سواء كان نوع
المحتوى يحدّد إنشاء مراجعة
جديدة أم لا، ويسرد تبويب المراجعات كل حفظ مع
رسالة سجل المنشئ. ويُنشئ Drush dxb:page:update أيضًا مراجعة، مع رسالة
السجل Updated via dxb:page:update Drush command.
لا يملك المنشئ أي عنصر تحكم لحالة الإشراف ولا يضبط
moderation_state أبدًا. فعند تفعيل الإشراف على المحتوى على نوع
المحتوى، تحتفظ المراجعة الجديدة بحالة المراجعة التي حمّلها المنشئ،
ويطبّق الإشراف على المحتوى قواعد تلك الحالة عند الحفظ:
- تبقى الصفحة المنشورة منشورة، وتُنشر المراجعة الجديدة فورًا.
- تبقى الصفحة غير المنشورة في المسودة.
- الصفحة ذات المراجعة الافتراضية المنشورة ومسودة لاحقة معلّقة مشكلة: فيحمّل المنشئ المراجعة المنشورة لا المسودة، فيُنشئ الحفظ مراجعة منشورة جديدة من المحتوى المنشور ويترك تغييرات المسودة جانبًا.
استخدموا نموذج تحرير العقدة لتغيير الحالات. ولسير مراجعة داخل موقع واحد، أبقوا الصفحات غير منشورة (مسودة) بينما يعمل المحرّرون عليها في المنشئ، وانشروا عبر النموذج عند اكتمال المراجعة.
سير عمل موقع التجهيز
يتجنّب موقع التجهيز المنفصل قيود الإشراف أعلاه ويتيح لأصحاب المصلحة مراجعة الصفحة الحقيقية.
- يبني المحرّرون الصفحات ويغيّرونها على موقع التجهيز.
- يعتمدها المراجعون هناك.
- انقلوا المحتوى المعتمد إلى الإنتاج بإحدى الطرق أدناه.
- تحققوا من الصفحة على الإنتاج كزائر مجهول.
نسخ قاعدة البيانات
انسخوا قاعدة البيانات الكاملة من التجهيز إلى الإنتاج:
drush sql:sync @staging @production
يستبدل ذلك كل محتوى الإنتاج، فانسخوا الإنتاج احتياطيًا أولًا وتوقعوا فقدان التغييرات المُجراة على الإنتاج بعد النسخ. والملفات غير مشمولة؛ زامنوها كما هو موضح أدناه.
التصدير الانتقائي للمحتوى
لنقل صفحات فردية، صدّروا العقدة بوحدة مثل
المحتوى الافتراضي، بما فيها الوسائط والملفات التي تشير إليها الصفحة،
واستوردوها على الإنتاج. يخزّن المنشئ HTML الخاص به في حقل
النصوص، فتسافر قيمة الحقل مع العقدة. وتشير مسارات الصور
في HTML إلى sites/default/files/dxpr_builder_images،
فانسخوا تلك الملفات أيضًا.
نشر الإعدادات فقط
إذا كان ما بنيتموه تخطيطًا قابلًا لإعادة الاستخدام لا صفحة محددة:
-
على التجهيز، احفظوا التخطيط باستخدام المزيد > حفظ كقالب على شريط الحاوية. فيُنشئ ذلك قالب مستخدم.
-
اذهبوا إلى DXPR Studio > DXPR Builder > قوالب المستخدم واختاروا إنشاء قالب صفحة في عمليات ذلك القالب.
-
صدّروا الإعدادات:
drush config:export -
انشروا ملف
dxpr_builder.page_template.*.ymlواستوردوه على الإنتاج:drush config:import -
يبدأ المحرّرون صفحات جديدة من القالب على الإنتاج. تظهر قوالب الصفحات في الحاويات الفارغة.
مزامنة الملفات
تذهب الملفات المرفوعة من المنشئ إلى dxpr_builder_images و
dxpr_builder_videos وdxpr_builder_files في دليل الملفات
الافتراضي للموقع. زامنوها مع المحتوى:
rsync -avz staging:/path/to/files/ production:/path/to/files/
يزيل مخزن ملفات مشترك مثل S3 مثبّت على البيئتين هذه الخطوة.
المراجعات والتراجع
ولأنّ كل حفظ مراجعة، فالتراجع عملية Drupal:
- افتحوا تبويب المراجعات الخاص بالصفحة.
- جدوا المراجعة التي سبقت الحفظ غير المرغوب؛ فيعرض كل حفظ في المنشئ
Saved with DXPR builder. - انقروا استرجاع.
يُنشئ الاسترجاع مراجعة أخرى، فيبقى السجل سليمًا.
أقفال التحرير
عندما ينقر محرّر أول مرة داخل حاوية، يرسل المحرّر طلب
dxpr_toggle_content_lock إلى /dxpr_builder/ajax ويسجّل جدول
dxpr_lock الكيان والمراجعة واللغة والمستخدم.
وعندما يفتح محرّر آخر الصفحة، يستعلم المحرّر عن
dxpr_content_lock_status ويخفي عناصر تحكم الحاوية ويعرض
زر مقفل باسم حامل القفل. ويحذف الحفظ الصف. ويمكن
لمحرّر آخر أيضًا النقر على مقفل والتأكيد لتجاوز القفل؛
ومنذئذ يفوز آخر حفظ.
ما الخطوة التالية؟
- النسخ الاحتياطي والاستعادة قبل تشغيل نسخة قاعدة بيانات.
- التحكم في الإصدارات لنشر الإعدادات مثل قوالب الصفحات.