رئيسية الفئة 🏠

ملخص:

امنح المستخدمين صفحة رئيسية محددة (“فئة الصفحة الرئيسية”) في مجتمعك.

يسمح لك بوجود Discourse واحد حيث يمتلك المستخدمون “صفحات رئيسية” محددة (اقرأ: فئة) كما تحددها مجموعتهم الأساسية.

:link: GitHub: المستودع https://github.com/merefield/discourse-category-home
:arrow_right: التثبيت: اتبع دليل تثبيت المكون الإضافي.

هل تستمتع بهذا المكون الإضافي؟ يرجى :star: على GitHub! :pray:

الميزات

باستخدام عناصر الواجهة المتاحة فقط في Discourse العادي، يجعل هذا حلاً قوياً وسهل الصيانة.

الإعداد

باستخدام وظائف Discourse العادية:

  • حدد عدد “الصفحات الرئيسية” للفئات :houses: التي تريدها، وقم بإنشائها إذا لم تكن موجودة:
  • ما لم تكن موجودة بالفعل، قم بإنشاء مجموعة مميزة لكل منها
  • أضف المستخدمين إلى كل من هذه المجموعات بشكل مناسب
  • قم بتعيين تلك المجموعة كمجموعة أساسية لكل مستخدم
  • قم بتصريح كل من هذه المجموعات لفئتها المعنية.

لقد انتهيت! :tada:

الآن كلما انتقل شخص ما إلى الصفحة الرئيسية لمجتمعك، سيتم إعادة توجيهه إلى الفئة التي تم تصريح مجموعته الأساسية لها.

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

استخدام مجموعة أساسية بهذه الطريقة له عدد من المزايا، كما ربما لاحظت من الرابط أعلاه، وليس أقلها:

  • يمكنك منح شخص ما لقبًا
  • يمكنك منحه تمييزًا
  • يمكنك تنسيق مشاركاته

اعتبارات أخرى

اجعل صفحاتك الرئيسية للفئات أكثر تأثيرًا من خلال تنسيقها بشكل مميز، على سبيل المثال: Category Banners

التحقق من أذونات الفئة/المجموعة الأساسية المميزة

للتحقق من أن مجموعتك الأساسية مرتبطة بفئة واحدة فقط، يمكنك استخدام هذه الميزة المدمجة المفيدة في Discourse، على سبيل المثال:

هناك فئة واحدة فقط في القائمة، جيد! :+1:

الجزء التقني

المنطق الدقيق المستخدم هو هذا:

   return CategoryGroup.where(group_id: primary_group).first.category_id

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

توفير مزيد من المرونة

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

لا يمكن تثبيت المكونات الإضافية / ميزة المجموعة الأساسية لا تعمل معك؟

إذا لم تتمكن من تثبيت المكونات الإضافية (لأنك على خطة استضافة مقيدة)، أو وجدت أن تكوين المجموعة الأساسية لا يعمل معك، ففكر في بديل مكون المظهر هذا: Custom Homepage for Groups والذي يتطلب تكوينًا أكثر تخصيصًا، ولكنه أقل تدخلاً.

24 إعجابًا

أتلقى رسالة خطأ عند محاولة إعادة البناء بعد إضافة هذا إلى ملف app.yml الخاص بي

Pups::ExecError: cd /var/www/discourse/plugins & git clone GitHub - merefield/discourse-category-home: Alters the user's homepage to become the Category of their Primary Group فشل مع عودة #<Process::Status: pid 391 exit 128>
موقع الفشل: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn’

هل ما زال يعمل للآخرين؟

يبدو أن البناء يتم بشكل جيد. تحقق من بناء app.yml الخاص بك.

لقد قمت بنشر إصلاح لسلسلة محلية مفقودة :slight_smile: (لكن هذا لن يكون سبب مشكلتك).

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

نعم، يعمل بشكل رائع الآن، شكرًا لك على المكون الإضافي الممتاز. قام Discourse Doctor بإصلاحه، لا بد أنه كان هناك مشكلة في البناء في المرة الأخيرة التي قمت فيها بإعادة بناء التطبيق.

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