كتل الشريط الجانبي الأيمن

:discourse2: ملخص يعرض مكونات الشريط الجانبي الأيمن شريطًا جانبيًا على يمين قوائم المواضيع مع قائمة قابلة للتكوين من المكونات.
:eyeglasses: معاينة معاينة على منشئ سمات Discourse
:hammer_and_wrench: رابط المستودع https://github.com/discourse/discourse-right-sidebar-blocks
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

تثبيت مكون السمة هذا

الميزات

يتضمن المكون بعض المكونات التي يمكنك عرضها في الشريط الجانبي:

  • popular-tags (العلامات الشائعة)
  • top-contributors (أفضل المساهمين)
  • recent-replies (الردود الأخيرة)
  • category-topics (مواضيع الفئة)
  • custom-html (HTML مخصص)
  • category-list (قائمة الفئات)
  • subcategory-list (قائمة الفئات الفرعية)
  • upcoming-events-list* (قائمة الأحداث القادمة)
  • minimal-gamification-leaderboard** (لوحة المتصدرين للتلعيب البسيطة)

:information_source: يجب تمكين دليل المستخدمين لتمكين قائمة أفضل المساهمين من التعبئة. إذا كانت قائمتك فارغة، ابحث عن enable user directory (تمكين دليل المستخدمين) في إعدادات المسؤول للتأكد من أنها مفعلة.

* متاحة فقط عند الاستخدام مع إضافة التقويم.
** متاحة فقط عند الاستخدام مع إضافة التلعيب.

يمكنك أيضًا استخدام مكونات Ember الأخرى كمكونات، فقط تحتاج إلى استخدام الاسم الصحيح. على سبيل المثال، يتضمن النواة مكون Ember باسم signup-cta، ويمكنك استخدامه في الشريط الجانبي كما هو. لاحظ أنه لا يمكنك استخدام المكونات التي تتوقع مجموعة من المعلمات، ولكن يمكنك بناء مكون Ember خاص بك في سمة منفصلة والإشارة إليه فقط باسمه في إعداد blocks (المكونات) للشريط الجانبي.

يمكنك التحكم في بعض الميزات للمكونات المقدمة عبر المعلمات.

الاسم الوصف الافتراضي القيمة متاح لـ
count يحدد عدد النتائج يختلف رقم جميع ما عدا html المخصص
excerptLimit يحدد طول مقتطف كل رد 150 رقم recent-replies
id معرف الفئة معرف الفئة (تستخدم قائمة الفئات مفصولة بفواصل) category-topics, category-list
content المحتويات المراد عرضها html custom-html
scopeToCategory يظهر فقط في الفئة أو الفئة الفرعية X معرف الفئة popular-tags
excludedTags قائمة العلامات المستبعدة أسماء العلامات popular-tags
displayInSpecificCategories قائمة الفئات لعرض الأداة الكل أرقام مفصولة بفواصل popular-tags
id معرف لوحة المتصدرين رقم minimal-gamification-leaderboard
tag العلامة المراد عرضها اسم العلامة tag-topics
period الفترة الزمنية لأفضل المواضيع أسبوعيًا الكل، سنويًا، ربع سنويًا، شهريًا، أسبوعيًا، يوميًا top-topics
title عنوان المكون يختلف نص tag-topics, category-list, top-contributors
excludedGroupNames يستبعد المجموعات المحددة أسماء المجموعات top-contributors
order يترتب المساهمون نص (likes_received أو likes_given) top-contributors
period الفترة الزمنية لأفضل المساهمين سنويًا الكل، سنويًا، ربع سنويًا، شهريًا، أسبوعيًا، يوميًا top-contributors
includeSubcategories يتضمن أحداث الفئات الفرعية false false, true upcoming-events-list
upcomingDays الأحداث التي بدأت قبل القيمة المقدمة 180 رقم upcoming-events-list
timeFormat تنسيق تاريخ / وقت الحدث LT تنسيق momentjs upcoming-events-list

الإعدادات

الاسم الوصف
blocks
show in routes للمستخدمين المتقدمين فقط: قم بتقييد الشريط الجانبي بالمسارات المحددة.
أمثلة: discovery.latest, discovery.unread, discovery.new, discovery.top, tag.show, “c/category-slug” (للفئات), “tag/sample-tag” (للعلامات).
عندما يكون فارغًا، يتم عرض الشريط الجانبي على جميع مسارات القوائم.

blocks: اختر المكونات المراد عرضها وضبط ترتيبها

show_in_routes: قرر على مسارات قوائم المواضيع التي سيتم عرض الشريط الجانبي عليها. بشكل افتراضي، سيعرضها على جميع مسارات الاكتشاف باستثناء /categories.

الترجمة الافتراضي
top_contributors.heading أفضل المساهمين
top_contributors.view_all عرض الكل
popular_tags.heading العلامات الشائعة
popular_tags.view_all عرض الكل
recent_replies.heading الردود الأخيرة
subcategory_list.heading الفئات الفرعية
top_topics.heading أفضل المواضيع
category_list.heading الفئات

لقطات الشاشة

لاحظ أن المكون يأتي بتنسيق أساسي فقط، والافتراض هو أن المشرفين الذين يستخدمون المكون سيضيفون تنسيقهم الخاص في سماتهم الخاصة.

التفاعلات

عند استخدامه بالتزامن مع إضافة تقويم Discourse، يمكنك إضافة مكون شريط جانبي لأحداثك القادمة. اسم المكون هو upcoming-events-list، ويمكن تخصيص تنسيق التاريخ وفقًا لـ هذا الصيغة (على سبيل المثال، MMMM D, YYYY). يمكنك أيضًا تكوين مدى النظر إلى المستقبل، وما إذا كانت أحداث الفئات الفرعية مُضمنة (انظر الجدول أعلاه)


:discourse2: مستضافون معنا؟ مكونات السمات متاحة للاستخدام في خططنا Pro و Business و Enterprise.

64 إعجابًا
Discourse Gamification
Sidebar for Subcategories
Add User leaderboard in sidebar
FKB Pro - Social theme
Setup Continuous Integration using GitHub Actions
Blogroll (feature request)
How to include a YouTube video or video widget on the community home page?
How to extend the Discourse sidebar?
Alternate presentation of sub-categories which puts the _top_ category first?
Discourse Bars :beers: :cocktail: (a sidebar framework)
FKB Pro - Social theme
Looking for the perfect theme
Discourse Bars :beers: :cocktail: (a sidebar framework)
Discourse Bars :beers: :cocktail: (a sidebar framework)
Add right sidebar gamification mini-leaderboard
Add right sidebar gamification mini-leaderboard
Pyx's Modern Theme
Homepage Blocks
Topic List Excerpts
🏷️ Bars Tag List Component
Discourse Bars :beers: :cocktail: (a sidebar framework)
When to switch themes/plugins to `.gjs`?
FKB Pro - Social theme
Recent replies takes 2 seconds to display
Leaderboard in homepage
Discourse Gamification Plugin in the Header
Discourse Calendar updated to use fullcalendar 6
I'm getting errors when I switch categories too quickly
目前我感觉看到的最好看的Discourse主题,有没有谁能爱心奉献一个
Discourse Sidebar Blocks
Tag Icons + Tag Banners + Right Sidebar Blocks
Adding ‘hot topics’ to the Sidebar
Hide admin user from user-directory and top contributors
Feedback wanted: userscript to theme component/plugin, or possible core sidebar browsing idea?
Have the upcoming-events block respect the subcategory filter when in Category lists
Topic List Previews (TLP)
Custom Components -- add button or text at any plugin outlet
Top Posters Widget?
Creating a Top 20 leaderboard for a specific date range
Connectors not rendering
Sidebar for Subcategories
Displaying tags along with categories
FKB Pro - Social theme
Creating and managing events
Customizing your site with existing theme components
Creating and installing plugins?
FKB Pro - Social theme
Adding a recent comments widget
How do you force keep open the sidebar?
Add social media handles on home page

ماذا يجب أن أضيف في المعلمة “name” إذا استخدمت html-custom؟

إعجاب واحد (1)

يسعدني رؤية هذا كـ #مكون_سمة_رسمي! إنه يفتح بالتأكيد عالمًا جديدًا من التخصيصات.

لدي سؤالان:

  1. في الشريط الجانبي، أريد عرض قائمة المواضيع /latest بنفس الطريقة التي تعرض بها category-topics هذه القائمة. هل هذا ممكن؟ recent-replies يقترب من ذلك (خاصة إذا تم إخفاء المقتطف)، لكنني أريد حقًا تضمين المواضيع التي ليس لها ردود.

  2. هل من الممكن عرض الكتل الجانبية في فئات معينة فقط؟ ما أعنيه هو أن المسار الوحيد المعروض هو قائمة مواضيع الفئة، وفقط للفئات التي أحددها.

إعجاب واحد (1)

نعتذر، الوثائق الخاصة بهذا الأمر تفتقر إلى التفاصيل (سأقوم بتحديثها الآن). اسم المعلمة لـ custom-html هو content.

ليس لدينا شيء جاهز لقائمة /latest الكاملة، ولكن يمكنك بناء قائمتك الخاصة وإضافتها إلى التكوين باستخدام اسمها. يجب أن تكون مشابهة جدًا لقوائم الفئات/العلامات، فقط بدون تصفية.

حاليًا، لا، لا يمكنك عرضها في فئات محددة فقط. ومع ذلك، يمكنك استخدام discovery.category في إعداد show in routes، وهذا سيعرض الشريط الجانبي فقط في مسارات الفئات (ولكن في جميعها، وليس مجموعة فرعية).

3 إعجابات

شكراً لك، هل من الممكن تضمين الشريط الجانبي في كل موضوع أيضاً؟

4 إعجابات

لقد لاحظت للتو قيدًا على المكون، خاصةً عندما يتعلق الأمر بكتل category-topics و subcategory-list، وهو أن إضافة كتل متعددة من أي من هذين النوعين بمعرفات مختلفة يؤدي دائمًا إلى ظهور مواضيع/قوائم فرعية من الكتلة العلوية في محرر التشغيل (أفترض).

إحدى المشكلات التي أواجهها الآن هي أنه بعد تجربة كتلة subcategory-list حوالي 10-12 مرة، توقفت عن الظهور تمامًا على موقع الاختبار الخاص بنا (انظر الفيديو أدناه).

إعجابَين (2)

لا يأخذ المقطع subcategory-list أي معلمة على الإطلاق. عند استخدامه، سيعرض الفئات الفرعية للفئة الحالية بناءً على الفئة الحالية التي انتقلت إليها… لذلك لا معنى لاستخدام هذا المقطع أكثر من مرة.

لهذا السبب أيضًا لا يظهر subcategory-list في الفيديو الخاص بك. إذا كنت على مسار غير فئوي، فلن يظهر هذا المقطع.

بالنسبة لـ category-topics، أرى في الفيديو الخاص بك نفس المعرف مستخدمًا مرتين: 7. لقد أجريت اختبارًا محليًا ومع معرفات مختلفة أحصل على مواضيع مختلفة معروضة (أي لا يمكنني إعادة إنتاج الخطأ المبلغ عنه).

4 إعجابات

مرحباً، شكراً جزيلاً على هذه الإضافة الرائعة!

لدي سؤال حول الشريط الجانبي subcategory-list: هل هناك خيار لعرضه لفئة معينة فقط؟

لقد ألقى المطورون لدينا نظرة، ويبدو أنه لا يوجد دعم لمعرف المعلمة لـ subcategory-list، هل يمكنك إضافة هذا، من فضلك؟

إعجابَين (2)

وفيما يتعلق بكتلة top-contributors: هل هناك طريقة لجلب النتائج لفترة أسبوع؟

إعجابَين (2)

حاليًا، لا، هذا الخيار غير موجود. من المنطقي إضافته، على الرغم من أنني أتخيل أنه يجب أن يدعم معرفات متعددة حتى تتمكن من عرض الكتلة لقائمة من الفئات (أ، ب، ج، على سبيل المثال). يسعدني مراجعة طلبات السحب (PRs) على المستودع، إذا اعتقد المطورون لديك أنه يمكنهم إضافة هذا، فسيكون ذلك رائعًا. (بخلاف ذلك، يمكنني إضافته إلى قائمة الميزات المرغوبة في مكون السمة.)

هل تقصد أ) جلب النتائج وتخزينها مؤقتًا لمدة أسبوع أو ب) جلب أفضل المساهمين للأسبوع الماضي عند كل تحميل؟ هذا الأخير يجب أن يكون سهل الإضافة، والتخزين المؤقت أكثر صعوبة قليلاً.

3 إعجابات

@pmusaraj هل يمكنك إضافة

padding: 3px 4px 3px 4px

لـ popular-tags؟

شكراً.

إعجاب واحد (1)

مرحباً @pmusaraj، شكراً جزيلاً على ردك!

لقد شارك المطور لدينا طلبات السحب (PRs) هنا، يرجى إلقاء نظرة: Implement the `displayInCategories` parameter which allows to specify a list of categories where the `subcategories-list` block is displayed by d521bb85 · Pull Request #10 · discourse/discourse-right-sidebar-blocks · GitHub

الخيار الثاني سيكون مثالياً! نحتاج إلى عرض قائمة بأفضل المساهمين للأسبوع الماضي بالفعل. شكراً جزيلاً لك!

4 إعجابات

المكون لديه القليل جدًا من الأنماط عن قصد حتى يتمكن المستهلكون من إضافة أنماطهم الخاصة في السمات/مكونات السمات الخاصة بهم.

شكرًا، طلب السحب هذا رائع وقد تم دمجه الآن!

سأعمل أيضًا قريبًا على إضافة قابلية التكوين إلى كتلة أفضل المساهمين (أو إذا كان شخص آخر أسرع، يسعدني مراجعة طلب سحب).

3 إعجابات

لست متأكدًا من مكان العثور على الكود الخاص بذلك - هل تمانع في توجيهي؟ أود إلقاء نظرة على تعديل category-topics بحيث يمنحك عدم وجود معرف جميع الفئات (وبالتالي قائمة /latest بشكل فعال)

سيكون من الرائع وجود ذلك في جميع الكتل!

إعجابَين (2)

@pmusaraj رائع! شكراً جزيلاً على مساعدتك، أتطلع لاستخدام كتلة أفضل المساهمين :slight_smile:

إعجاب واحد (1)

مرحباً! لست متأكداً مما إذا كانت هذه المكونة تسبب أخطاء. ولكن بمجرد تعطيلها، لا تظهر المزيد من الأخطاء. :thinking: هل يمكن لأحد أن يلقي نظرة على هذا لمساعدتي في تحديد المشكلة؟ سأكون ممتناً جداً.

مع تمكينها، عند زيارة موضوع معين على سطح المكتب، والنقر على شعار الموقع في الشريط العلوي في محاولة للعودة إلى الصفحة الرئيسية، سيتم نقلي إلى شاشة تحميل لا تختفي أبداً وستظهر أخطاء في وحدة تحكم المتصفح (كما هو موضح أدناه). لم تظهر أي سجلات أخطاء ذات صلة في المسار mysite/logs.

d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'findFiltered')
    at new CategoryTopics (d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98:18)
    at h.createComponent (base-component-manager.js:37:1)
    at h.createComponent (ember-component-manager.js:54:1)
    at C.create (manager.js:558:1)
    at Object.evaluate (runtime.js:3301:1)
    at Object.evaluate (runtime.js:1312:1)
    at Dt.evaluateSyscall (runtime.js:5232:1)
    at Dt.evaluateInner (runtime.js:5188:1)
    at Dt.evaluateOuter (runtime.js:5180:1)
    at Wt.next (runtime.js:6191:1)
    at Wt._execute (runtime.js:6175:1)
    at Wt.execute (runtime.js:6166:1)
    at qt.handleException (runtime.js:5369:1)
    at Kt.handleException (runtime.js:5605:1)
    at Lt.throw (runtime.js:5302:1)
    at Be.evaluate (runtime.js:2580:1)
    at Lt._execute (runtime.js:5285:1)
    at Lt.execute (runtime.js:5266:1)
    at Ht.rerender (runtime.js:5634:1)
    at Er.render (index.js:7578:1)
    at index.js:7896:1)
    at It (runtime.js:5074:1)
    at Rr._renderRoots (index.js:7876:1)
    at Rr._renderRootsTransaction (index.js:7928:1)
    at Rr._revalidate (index.js:7970:1)
    at invoke (backburner.js:351:1)
    at p.flush (backburner.js:241:1)
    at h.flush (backburner.js:447:1)
    at q._end (backburner.js:999:1)
    at _boundAutorunEnd (backburner.js:648:1)
CategoryTopics @ d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98
createComponent @ base-component-manager.js:37
createComponent @ ember-component-manager.js:54
create @ manager.js:558
(匿名) @ runtime.js:3301
evaluate @ runtime.js:1312
evaluateSyscall @ runtime.js:5232
evaluateInner @ runtime.js:5188
evaluateOuter @ runtime.js:5180
next @ runtime.js:6191
_execute @ runtime.js:6175
execute @ runtime.js:6166
handleException @ runtime.js:5369
handleException @ runtime.js:5605
throw @ runtime.js:5302
evaluate @ runtime.js:2580
_execute @ runtime.js:5285
execute @ runtime.js:5266
rerender @ runtime.js:5634
render @ index.js:7578
(匿名) @ index.js:7896
It @ runtime.js:5074
_renderRoots @ index.js:7876
_renderRootsTransaction @ index.js:7928
_revalidate @ index.js:7970
invoke @ backburner.js:351
flush @ backburner.js:241
flush @ backburner.js:447
_end @ backburner.js:999
_boundAutorunEnd @ backburner.js:648
Promise.then(异步)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then(异步)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then(异步)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then(异步)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_ensureInstance @ backburner.js:1206
scheduleOnce @ backburner.js:845
k @ index.js:522
queueRerender @ mount-widget.js:124
scheduleRerender @ widget.js:319
rerenderResult @ widget.js:365
F @ hooks.js:207
(匿名) @ hooks.js:247
dispatch @ jquery.js:5430
_.handle @ jquery.js:5234
frame:251 لقد قمت بتجاهل العلامة، ولكن ملفات تعريف الارتباط الخاصة بالجهات الخارجية معطلة في متصفحك، لذا ستعود العلامة في المرة التالية التي تزور فيها الصفحة.

أرى معلومات حول هذه المكونة في ملف js المذكور في السطر الأول من سجل الخطأ أعلاه.

// line 96-103 of d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe
      const filter = "c/" + categoryId;
      this.category = _category.default.findById(categoryId);
      this.store.findFiltered("topicList", {
        filter
      }).then(result => {
        const results = result.topic_list.topics;
        results.forEach(topic => {
          topic.url = "".concat((0, _getUrl.default)("/t/")).concat(topic.slug, "/").concat(topic.id);
إعجاب واحد (1)

نعم، آسف على ذلك. يجب أن يكون تم الإصلاح الآن، تحتاج فقط إلى سحب آخر تحديث لمكون السمة.

3 إعجابات

شكرا! يعمل بشكل رائع الآن.

3 إعجابات

مرحباً @pmusaraj، آسف إذا كنت أبدو لحوحًا - أردت فقط معرفة ما إذا كان هناك أي وقت تقديري بخصوص هذا التنفيذ.

ستكون إضافة رائعة :slight_smile:

شكراً جزيلاً لك!

3 إعجابات

شكراً لك على هذه المكونات الرائعة!

لاحظت أن رأسي وتذييلي بالكامل يختفيان على مستوى العالم عندما أقوم بتمكين هذا (كل شيء في ملفي header.html و footer.html). هل كان هذا مقصوداً؟ ولكن لتجاوز هذا، يتعين علي استخدام PluginAPI لإضافة رأس/تذييل يدوياً.

إعجابَين (2)