مع تزايد طموح الثيمات، كنا نبحث عن طرق للسماح لها بالتلاعب بالسلوك الأساسي الخاص بالخادم. على الرغم من أنها لن تحصل أبدًا على نفس مستوى التحكم مثل الإضافات (plugins)، يمكننا توفير بعض نقاط الربط (hooks) المحددة مسبقًا لكي تتلاعب بها الثيمات.
نقدم لكم: مُعدِّلات الثيمات ![]()
يتم تحديدها باستخدام المفتاح modifiers في ملف about.json الخاص بالثيم الخاص بك.
للحصول على قائمة محدثة بنسبة 100% بالمُعدِّلات، تحقق من مخطط قاعدة البيانات في نهاية theme_modifier_set.rb، ولكن إليك ملخص سريع لما لدينا حتى الآن:
-
serialize_topic_excerptsقيمة منطقية (boolean) (الافتراضي خطأ) - قم دائمًا بتضمين المقتطفات عند تسلسل قوائم المواضيع. -
csp_extensionsمصفوفة سلاسل نصية (string array) - أضف توجيهات إلى سياسة أمان المحتوى (CSP). يعمل بنفس طريقة طريقةextend_content_security_policyالقديمة لإعدادات الثيم. ولكن تذكر، يُسمح تلقائيًا بوسوم<script src="">البسيطة. -
svg_iconsمصفوفة سلاسل نصية (string array) - قائمة بالأيقونات التي يجب تضمينها في مجموعة الأيقونات الفرعية. -
topic thumbnailsمصفوفة أبعاد (array of dimensions) - اطلب دقة إضافية في مجموعة صور مصغرات المواضيع. لاحظ أنها تُنشأ بشكل غير متزامن، لذا يجب عليك الرجوع إلى الصورة الأصلية إذا لم يتم توفير الحجم الذي طلبته. مزيد من المعلومات متاحة في رسالة الالتزام (commit message). -
serialize_post_user_badgesمصفوفة سلاسل نصية (string array) - قائمة بأسماء الشارات (تطابق الإدخالات في جدول الشارات) لتسلسلها جنبًا إلى جنب مع بيانات المنشور. عند التكوين، يشتمل النظام على شارات المستخدم المحددة مع كل منشور للعرض من جانب العميل.
أحد الثيمات التي تستخدم هذه النقاط الجديدة بكثافة هو Topic List Thumbnails - تحقق من الشيفرة لترى كيف يعمل.
المُعدِّلات المعتمدة على الإعدادات
يمكن أيضًا تكوين مُعدِّلات الثيم لسحب قيمتها من إعداد ثيم، مما يسمح لمشغلي الموقع بتجاوز سلوك المُعدِّل دون تعديل شيفرة الثيم. لجعل مُعدِّل يعتمد على إعداد، استخدم هذا التركيب في ملف about.json الخاص بك:
{
"modifiers": {
"modifier_name": {
"type": "setting",
"value": "setting_name"
}
}
}
على سبيل المثال، إذا كان لديك إعداد ثيم يسمى show_excerpts وتريد أن يتحكم في المُعدِّل serialize_topic_excerpts:
في settings.yml:
show_excerpts:
default: false
في about.json:
{
"modifiers": {
"serialize_topic_excerpts": {
"type": "setting",
"value": "show_excerpts"
}
}
}
عند تغيير إعداد show_excerpts، سيتم تحديث قيمة المُعدِّل تلقائيًا لتطابقه. يوفر هذا مرونة لمشغلي الموقع لتخصيص سلوك الثيم من خلال واجهة المشرف (admin UI).
يتم التحكم في إصدار هذه الوثيقة - اقترح التغييرات على github.

