إنشاء قالب DXPR فرعي (Drupal 11).
يغيّر قالب DXPR الألوان والخطوط والترويسة والتباعد والتخطيط من لوحة إعداداته، لذا لا تحتاج معظم المواقع إلى سطر CSS واحد. أما القالب الفرعي فللباقي: ورقة أنماطكم الخاصة، وتجاوزات القوالب، والمكتبات الإضافية، أو لوحة ألوان تشحنونها مع الشيفرة. يرث القالب الفرعي كل أوراق الأنماط والقوالب من قالب DXPR، ويحصل على إعداداته الخاصة، ولا تمسّه تحديثات قالب DXPR.
يغطي هذا الدليل قالب DXPR 8.2 على Drupal 10.3 وDrupal 11. تأتي عدة البدء التي يستخدمها داخل القالب في dxpr_theme/dxpr_theme_STARTERKIT؛ ولا يُستخدم أمر generate-theme في نواة Drupal، لأن قالب DXPR يأتي بعدة بدء وأمر خاصين به.
قبل أن تبدؤوا
أضيفوا قالب DXPR وفعّلوا وحدة المساعدة الخاصة به، التي يحتاجها القالب قبل أن يثبّته Drupal:
composer require drupal/dxpr_theme
drush en dxpr_theme_helper1. ولّدوا القالب الفرعي من عدة البدء
أسرع طريقة هي أمر Drush الذي توفره وحدة DXPR Theme Helper. شغّلوه من جذر مشروعكم؛ فهو يتحقق من الاسم الآلي، وينسخ عدة البدء إلى themes/custom، ويعيد تسمية كل شيء نيابة عنكم:
drush dxt:subtheme:create northwind_theme --theme-name="Northwind Theme"دون وسائط، يطلب الأمر الاسمين. ودون Drush، استخدموا السكربت المرفق مع القالب: انتقلوا إلى web/themes/contrib/dxpr_theme، واجعلوا السكربتات قابلة للتنفيذ مرة واحدة باستخدام chmod +x scripts/*، وشغّلوا ./scripts/create_subtheme.sh وأدخلوا الاسم البشري والاسم الآلي عند السؤال. ولا يعمل السكربت إلا من ذلك المجلد.
وفي الحالتين تحصلون على web/themes/custom/northwind_theme، مع إعادة تسمية ملفات عدة البدء وإعداداتها إلى اسمكم الآلي واستبدال العنصر النائب THEMETITLE في ملفات المعلومات والمخطط.
2. فعّلوه واحفظوا الإعدادات مرة واحدة
- انتقلوا إلى المظهر واختاروا التثبيت والضبط كافتراضي لقالبكم الفرعي.
- افتحوا إعدادات القالب الفرعي واضغطوا حفظ الإعدادات دون تغيير أي شيء.
ينشئ هذا الحفظ الأول ورقة أنماط الإعدادات للقالب الجديد. يبدأ القالب الفرعي من الإعدادات الافتراضية لعدة البدء، وليس من الإعدادات التي أجريتموها في قالب DXPR. ولنقلها، صدّروها من قالب DXPR واستوردوها إلى القالب الفرعي:
drush dxt:config:export --theme=dxpr_theme --file=theme.yml
drush dxt:config:import theme.yml --theme=northwind_themeومنذ ذلك الحين تعمل لوحة التحكم كما تعمل تمامًا لقالب DXPR: الألوان والخطوط والترويسة والتذييل والتباعد كلها تخص القالب الفرعي.
أبقوا مناطق القالب الفرعي مطابقة لمناطق القالب الأساس. تعلن عدة البدء عن المناطق الأربع عشرة نفسها التي يعلنها قالب DXPR، ويشير خيار إخفاء المناطق في DXPR Theme Helper على المحتوى إليها بالاسم.
3. ما الذي تقدمه عدة البدء
northwind_theme.info.yml:base theme: dxpr_theme، والمناطق، ومكتبة واحدة،global-styling، تحمّل ورقة أنماطكم. وتسرد كتلةlibraries-overrideالمعلّقة مكتبات قالب DXPR التي يُرجّح أن توقفوها، منdxpr_theme/bootstrap-5إلىdxpr_theme/helper-classes.css/dxpr_theme_subtheme.css: تُحمَّل على كل صفحة بعد أوراق أنماط القالب نفسه. ضعوا CSS الخاص بكم هنا.templates/: فارغ عدا ملف README. انسخوا أي قالب منdxpr_theme/templatesإلى هنا لتجاوزه.config/installوconfig/schema: الإعدادات الافتراضية ومخططها، معاد تسميتها إلى قالبكم.color-settings.json: لوحات الألوان المسماة الخاصة بكم، تظهر في قائمة أنظمة الألوان بجانب المدمجة.logo.svgوfavicon.icoوscreenshot.png: استبدلوها بملفاتكم.
4. اكتبوا CSS يتبع الإعدادات
يكتب قالب DXPR إعداداته في متغيرات CSS: --dxt-color-* للوحة الألوان و--dxt-setting-* للخطوط والتباعد والتخطيط، ويربطها بمتغيرات Bootstrap --bs-*. استخدموا المتغيرات في ورقة أنماطكم بدل القيم الثابتة، فيبقى CSS الخاص بكم تابعًا للوحة التحكم عندما يغيّر أحدهم لونًا أو خطًا.
/* css/dxpr_theme_subtheme.css */
.card {
border-radius: 1rem;
border-color: color-mix(in srgb, var(--dxt-color-base) 20%, transparent);
}
.dxpr-theme-footer h2 {
font-family: var(--dxt-setting-headings-font-face);
color: var(--dxt-color-footertext);
}للون الأساس وألوان التمييز والنص والعناوين والروابط والبطاقات والتذييل متغير لكل منها. والقائمة الكاملة في ملف README الخاص بالقالب تحت مرجع خصائص CSS المخصصة (المتغيرات).
5. تجاوز القوالب والمكتبات
انسخوا القالب الذي تريدون تغييره من themes/contrib/dxpr_theme/templates إلى مجلد templates في قالبكم الفرعي، وحافظوا على اسم الملف، وحرّروه، وامسحوا ذاكرات التخزين المؤقت. يختار Drupal نسخة القالب الفرعي أولًا.
لإسقاط ورقة أنماط أو سكربت من القالب الأساس، أزيلوا التعليق عن سطر libraries-override: في ملف المعلومات مع أسطر المكتبات التي تريدون إزالتها؛ فهي مضبوطة على false أصلًا. ولإضافة مكتباتكم، أعلنوا عن مزيد من المكتبات في northwind_theme.libraries.yml واسردوها تحت libraries في ملف المعلومات، كما تفعل عدة البدء لـ global-styling.
6. امنحوا المحررين أصنافكم في DXPR Builder
تظهر الأصناف المعلنة تحت dxpr_builder_classes: في ملف معلومات القالب الفرعي في منتقي الأصناف في DXPR Builder، فيطبّق المحررون الشريط الداكن أو اللوحة الزجاجية دون كتابة اسم صنف. ونسّقوا الصنف في dxpr_theme_subtheme.css، محصورًا بعناصر DXPR Builder المخصصة له.
7. اشحنوا لوحة ألوان مع القالب
أضيفوا أنظمة مسماة إلى color-settings.json في جذر القالب الفرعي. يضبط كل نظام المفاتيح نفسها التي تستخدمها لوحة التحكم: base وbasetext وlink وaccent1 وaccent2 وtext وheadings وcard وfooter وheader وpagetitle وغيرها. ويظهر النظام في قائمة أنظمة الألوان في نموذج الإعدادات، فينتقل الموقع إلى لوحة العلامة بنقرة واحدة.
8. تحديث قالب DXPR لاحقًا
- حدّثوا القالب الأساس باستخدام Composer:
composer update drupal/dxpr_theme --with-dependencies. - شغّلوا تحديثات قاعدة البيانات وامسحوا ذاكرات التخزين المؤقت.
- افتحوا نموذج إعدادات القالب الفرعي واحفظوه مرة أخرى، لتُعاد توليد ورقة أنماط الإعدادات مع أي متغيرات جديدة.
- اقرؤوا ملاحظات الإصدار لمعرفة تغييرات القوالب أو المناطق، وقارنوا أي قالب تجاوزتموه مع الإصدار الجديد.
دعوا وكيل الذكاء الاصطناعي يتولى التنسيق
تأتي إصدارات قالب DXPR 8.1.1 والإصدارات الأحدث مع مهارة وكلاء. شغّلوا drush dxt:setup-ai في مشروعكم، فيتعلم وكيل الترميز (Claude Code أو Codex أو Gemini CLI أو Cursor) إعدادات القالب ومعانيها. صفوا العلامة، فيضبط الوكيل الألوان والخطوط وتخطيط الترويسة والتباعد عبر الإعدادات نفسها التي تكتبها لوحة التحكم، لتراجعوها على الموقع. ويمكنه أيضًا إنشاء القالب الفرعي باستخدام drush dxt:subtheme:create.
تفعل مهارة DXPR Builder الشيء نفسه للصفحات، وDrush Webmaster للمحتوى وطرق العرض. شاهدوا مهارات الوكلاء عمليًا.