: eyeglasses: نظرة عامة
مكون سمة (Theme Component) يسمح لك بتخطيط المكونات[1] على أشرطة علوية وجانبية.
- حدد مجموعة من “الأدوات المصغرة” (widgets) بشكل مميز للمسار (Route) والموضع (Position).
- يدعم الإعدادات لكل من: الاكتشاف (discovery)[2]، الموضوع (topic)، العلامة (tag)[3]، الفئة (category)[3:1]، الفئات (categories)[3:2] أو تقاطع العلامات (tags-intersection)[4].
- يمكن أن تكون “الأشرطة” (Bars) إما: علوية، يسارية، يمينية أو موقع يميني بديل.
- يمكن طي كل شريط أو إغلاقه (تحديث المتصفح لإعادة تعيين الإغلاق). يمكن تصغيرها افتراضيًا.
- يتعامل مع الشريط الجانبي الرسمي (Official Sidebar)، ولكن إذا كنت تنوي استخدام شريط جانبي أيسر (Bars Left Sidebar)، فإن وضع القائمة المنسدلة للشريط الجانبي الرسمي موصى به.
- يأتي مع إعدادات مثال موجودة تعرض بعض الأحرف الكبيرة، جزئيًا كعرض توضيحي ولتتمكن من رؤية إعدادات مثال. احذف هذه واستبدلها بأسماء المكونات الخاصة بك.
- يأتي مع مكون واحد:
bars-custom-html(انظر إعدادات المثال المعبأة مسبقًا) - ولكن المكونات من العديد من مكونات السمات (Theme Components) والإضافات (Plugins) الحالية متوافقة. - لم يتم تنفيذ دعم الهاتف المحمول بعد.
: link: روابط سريعة
| : octopus: احصل على الكود | https://github.com/merefield/discourse-tc-bars |
| : eyes: شاهد الكود | GitHub - merefield/discourse-tc-bars: A Theme Component that allows you to lay out Components ("widgets") on top and side bars |
| : question: دليل التثبيت | Installing a theme or theme component |
هل تستمتع بمكون السمة هذا؟ يرجى : star: على GitHub ! : pray:
مثال مجاني:
عند التحميل الأول:
: warning: بعض الأمور الهامة التي يجب ملاحظتها حول مكون السمة هذا!
-
تم تصميم مكون السمة هذا بشكل أساسي للمطورين والمسؤولين الذين لديهم فهم تقني لتطوير السمات. إذا لم تكن تقنيًا بما فيه الكفاية وتحتاج إلى مساعدة في تنفيذ الأشرطة الجانبية باستخدام Bars، يمكنك توظيفي أو توظيف مطور في Marketplace.
-
يهدف مكون السمة هذا إلى توفير إطار عمل لدعم الأشرطة الجانبية. إنه لا يهدف إلى توفير لمسة بصرية نهائية ستحتاج إلى إضافتها في السمة الخاصة بك باستخدام CSS إضافي. ومع ذلك، فإنه يقوم بالكثير من العمل من أجلك ويمنحك أشياء أقل للتفكير فيها وربما حتى يمنحك القدرة على القيام بأشياء لم تكن لديك القدرة على القيام بها من قبل … : sweat_smile:
اعتبارات المكون
- يجب عليك تحديد اسم المكون. اسم المكون هو في الواقع نفس اسم الملف في دليل السمة (theme) أو مكون السمة (tc) أو الإضافة (plugin)
componentبدون اللاحقة. - اسم المكون ليس اسم مكون السمة (الذي يمكن أن يحتوي على العديد من مكونات Ember Glimmer)، بل هو اسم ملف مكون Ember الفعلي : sweat_smile: ، على سبيل المثال:
لذا layouts-tag-list
- يمكن أن تكون من مكون سمة أو إضافة موجودة. قد تعمل المكونات الحالية. الأمثلة هي:
- 🏷️ Bars Tag List Component
- Render a component within a Widget. (Using select-kit components within plugin code) - #31 by merefield
- Discourse AI Topic Summary 🤖 … وربما حتى:
- أداة لوحة المتصدرين: https://github.com/discourse/discourse-gamification/blob/main/assets/javascripts/discourse/components/minimal-gamification-leaderboard.js (أخبرني إذا جربتها أدناه!)
- يتطلب بعض الخبرة لبناء المكونات
- ولكن حاول بناء مكونك الخاص في مكون سمة آخر وتأكد من تنشيط كليهما في نفس السمة.
- يجب على المكونات جلب بياناتها الخاصة (لا يمكنها استخدام نماذج تمرير مخرج الإضافة للأسف بسبب مخارج الإضافة المحددة المطلوبة لاستخدامها لوضع الأشياء بهذه الطريقة).
- بشكل افتراضي، يمكنك فقط استخدام بيانات واجهة برمجة التطبيقات (API) JSON الحالية من، على سبيل المثال، Discourse core أو تلك التي توفرها إضافة موجودة. إذا كنت بحاجة إلى بيانات مخصصة لا يمكنك الحصول عليها من واجهات برمجة التطبيقات الحالية، يمكنك توظيفي أو توظيف شخص ما في Marketplace لمساعدتك.
- قد تحتاج إلى تنسيق حدود الشريط الجانبي والمكون حسب ذوقك. (مرة أخرى، إذا كنت بحاجة إلى مساعدة، ففكر في توظيف مطور).
- الاستخدام الاستراتيجي لظلال الصندوق والحدود يمكن أن يجعل الأشياء تبدو لطيفة حقًا - كن فنيًا!
لماذا
-
مع تحديث Discourse core إلى Ember 5، فإن الحيلة التي استخدمتها إضافات Pavilion Layouts لتوفير طريقة ممتازة لمعالجة تخطيط Discourse توقفت عن العمل. لم يعد هناك طريقة سهلة لعرض شريط جانبي على مسار الموضوع عبر واجهة مستخدم سهلة نسبيًا للمستخدم النهائي.
-
بالإضافة إلى ذلك، قدمت Ember مكونات Glimmer التي كانت أفضل بكثير للعمل معها. (استخدمت Layouts واجهة برمجة تطبيقات الأدوات (Widgets API) التي تم إيقافها لصالح مكونات Glimmer).
-
أخيرًا، قدم فريق Discourse core محرر JSON جديد لإعدادات مكونات السمة مما جعل نشر إعداد أكثر تعقيدًا ممكنًا
: rocket: -
بدلاً من إصلاح إضافة Layouts (لم تكن مكونات السمة موجودة في أيام Layouts)، كان من المنطقي إعادة البناء كمكون سمة، لأننا نستطيع تحقيق معظم الأشياء التي نحتاجها في الواجهة الأمامية فقط.
-
أدخل “Bars”
: cocktail: تحياتي!!
مشاكل معروفة
- الشريط العلوي لا يلتصق (قد أزيل الإعداد المقابل إذا لم أتمكن من حله).
شكر وتقدير
- خليفة روحي لإضافة Layouts Plugin المكسورة الآن والتي بناها @angus (تحياتي!) والتي خدمت بشكل جيد لسنوات عديدة.
- يستخدم نظام المعلمات من Right Side Blocks (شكرًا @pmusaraj!).
يشير مصطلح “الاكتشاف” (المسار) إلى صفحات قائمة الموضوعات الرئيسية (مثل “الأحدث”، “جديد”) التي تسمح لك بتصفح الموضوعات المتاحة قبل النقر والغوص في موضوع معين. ↩︎
تقنيًا هو أيضًا مسار “اكتشاف” ولكننا نقسمها إلى أسماء مميزة حتى تتمكن من التعامل معها بشكل مختلف إذا اخترت ذلك. ↩︎
انظر هنا لمزيد من التفاصيل. لكي يظل هذا اختياريًا (لن يرغب جميع مثبتي Bars في صفحة رئيسية مخصصة) لا يضيف Bars المعدل المطلوب في
about.jsonلذلك يجب عليك إضافته في السمة الأصلية أو مكون سمة آخر لتفعيله. ↩︎ ↩︎ ↩︎انظر إضافة تقاطع العلامات. ↩︎








