لقد أضفنا طريقة جديدة للمطورين للتحكم في تجربة الموقع. تسمح إعدادات الموقع القابلة للتخصيص للمظاهر بتجاوز مجموعة محدودة من إعدادات الموقع التي تحددها Discourse core. ![]()
كيف تختلف إعدادات الموقع القابلة للتخصيص عن غيرها؟
لدينا بالفعل مفاهيم لـ إعدادات المظهر و معدلات المظهر، فكيف تختلف إعدادات الموقع القابلة للتخصيص؟ إليك ملخص سريع:
- إعدادات المظهر - هذه هي الإعدادات المخصصة المستخدمة للتحكم في واجهة المستخدم والوظائف داخل المظهر أو المكون الخاص بك وتوفر خيارات التكوين. لا يمكن لهذه تغيير وظائف Discourse الأساسية.
- معدلات المظهر - تسمح للمظهر أو المكون بتعديل وظائف مختارة من جانب الخادم لـ Discourse الأساسي كبديل لبناء إضافة.
إعدادات الموقع القابلة للتخصيص (جديد) - تسمح للمظهر (وليس المكونات) بتجاوز مجموعة فرعية صغيرة من إعدادات الموقع الأساسية، والتي تتحكم عمومًا في أجزاء من واجهة المستخدم ووظائف أخرى بسيطة. هذا يسمح للمظاهر بالحصول على تحكم أكبر في تجربة الموقع الكاملة.
إعدادات الموقع القابلة للتخصيص لها أنواع بيانات وقيم متطابقة مع إعدادات الموقع التي تتجاوزها. لجميع الأغراض العملية، تصبح قيمة إعداد الموقع في قاعدة البيانات غير ذات صلة، حيث يتحكم كل مظهر في هذه القيمة بشكل فردي الآن.
كيف يمكن للمسؤولين عرض وتغيير إعدادات الموقع القابلة للتخصيص؟
يمكن للمسؤولين عرض وتغيير إعدادات الموقع القابلة للتخصيص في مكانين. أولاً، في كل صفحة مظهر فردية، يوجد الآن قسم “الإعدادات التي يمكن للمظهر تجاوزها” كما هو موضح هنا، فوق القسم الآخر الذي يعرض إعدادات المظهر التي يحددها المظهر:
تشير النقطة إلى أنه تم تغيير القيمة من القيمة الافتراضية لإعداد الموقع. سيؤدي الضغط على “إعادة تعيين” إلى تغيير قيمة إعداد موقع المظهر لمطابقة القيمة الافتراضية لإعداد الموقع.
المكان الثاني الذي يمكن للمسؤولين فيه عرض هذه الإعدادات هو في صفحة جديدة، /admin/config/theme-site-settings:
من هنا، يمكن للمسؤولين رؤية جميع إعدادات الموقع القابلة للتخصيص، وما هي القيمة الافتراضية لإعداد الموقع، وأي المظاهر تتجاوز هذه القيمة. عند تمرير مؤشر الماوس فوق اسم المظهر، ستعرض واجهة المستخدم القيمة التي حددها هذا المظهر.
ماذا سيحدث لتغييرات إعدادات الموقع الحالية الخاصة بي؟
إذا قمت بتغيير enable_welcome_banner أو search_experience من القيم الافتراضية على موقعك، فسنقوم تلقائيًا بترحيل هذه القيم إلى كل مظهر قمت بتثبيته على موقعك، لذلك لن يتغير شيء في واجهة المستخدم لأعضائك.
أين يتم تعريفها؟
يتم تعريف إعدادات الموقع القابلة للتخصيص في ملف config/site_settings.yml الأساسي. كل إعداد موقع قابل للتخصيص لديه خيار themeable: true محدد.
في الوقت الحالي، هناك إعدادان فقط للموقع قابلان للتخصيص - enable_welcome_banner و search_experience - ولكن في المستقبل، من المحتمل أن نجعل المزيد من إعدادات الموقع قابلة للتخصيص.
كيف يمكن لمؤلفي المظاهر التحكم في القيم الافتراضية؟
يمكن لمؤلفي المظاهر تحديد تجاوزات إعدادات موقع المظهر في ملف about.json تحت مفتاح theme_site_settings كما يلي:
"theme_site_settings": {
"enable_welcome_banner": false
}
سيتم حفظ أي قيمة هنا في قاعدة البيانات وربطها بالمظهر. بمجرد حفظ القيمة، لن تؤثر التغييرات في theme_site_settings في ملف about.json عند تحديث المظهر على القيمة المحفوظة حاليًا في قاعدة البيانات، حيث لا يمكننا معرفة ما إذا كان المسؤول قد غيّر الإعداد في هذه الأثناء.
ما هي قيود إعدادات الموقع القابلة للتخصيص؟
إعدادات الموقع القابلة للتخصيص مخصصة فقط للتحكم في عناصر واجهة المستخدم، وعند استرداد قيمتها، نطلب معرف المظهر، لذا تنطبق هذه القيود:
- لا يمكن استخدام إعدادات الموقع القابلة للتخصيص في مهام Sidekiq
- لا يمكن استخدام إعدادات الموقع القابلة للتخصيص في قواعد markdown
- سيتم تخزين إعدادات الموقع القابلة للتخصيص مؤقتًا بشكل منفصل عن إعدادات موقع العميل باستخدام معرف المظهر كمفتاح
- ستتجاوز إعدادات الموقع القابلة للتخصيص المفاتيح في خدمة
siteSettingsعلى العميل باستخدام محمل التطبيق المسبق - لن يتضمن
SiteSetting.client_settings_jsonإعدادات الموقع القابلة للتخصيص، بدلاً من ذلك يمكنك استدعاءSiteSetting.theme_site_settings_jsonبمعرف المظهر.
كقاعدة عامة، ستكون إعدادات موقع المظهر فقط للإعدادات البسيطة التي تتحكم في أجزاء من واجهة المستخدم، ولا شيء من جانب الخادم.

