يشرح هذا الدليل كيفية منح شارة غير مخصصة عبر وحدة تحكم Discourse.
مستوى المستخدم المطلوب: مدير النظام
مطلوب الوصول إلى وحدة التحكم
في سيناريوهات محددة، قد تحتاج إلى منح شارة افتراضية من شارات Discourse لمستخدم يدويًا عبر وحدة التحكم. على سبيل المثال، قد لا يحصل المستخدم على شارة “المحب” (Enthusiast) بسبب زيارة المنتدى لمدة 10 أيام متتالية، وذلك ربما بسبب الفرق الزمني بين التوقيت المحلي للمستخدم وتوقيت UTC الخاص بالخادم.
يوفر هذا المستند دليلًا خطوة بخطوة لمنح الشارات غير المخصصة يدويًا باستخدام وحدة تحكم Rails، مما يضمن عدم إلغاء هذه الشارات تلقائيًا.
فحص الشارات القابلة للإلغاء تلقائيًا
قبل منح شارة، تأكد من أن النظام لن يلغيها تلقائيًا. قم بتشغيل الأمر التالي في وحدة تحكم Rails للحصول على قائمة بهذه الشارات:
Badge.where(auto_revoke: false).pluck(:name)
سيظهر هذا الأمر قائمة بالشارات غير القابلة للإلغاء تلقائيًا، بما في ذلك:
- “أول علم” (First Flag)
- “شكرًا لك” (Thank You)
- “يعود بالخير” (Gives Back)
- “متعاطف” (Empathetic)
- “بمحبة” (Out of Love)
- “حب أعلى” (Higher Love)
- “مجنون في الحب” (Crazy in Love)
- “عاشق” (Aficionado)
- “مكرس” (Devotee)
- “محب” (Enthusiast)
- “قارئ” (Reader)
- “ذكرى” (Anniversary)
- “مقدر” (Appreciated)
- “محترم” (Respected)
- “مُعجب به” (Admired)
منح شارة
لمنح شارة من هذه القائمة، اتبع الخطوات التالية:
-
ابحث عن المستخدم حسب اسم المستخدم:
قم بتشغيل الأمر التالي، مع استبدال
enthusiastic_userباسم المستخدم الفعلي:user = User.find_by(username: 'enthusiastic_user') -
حدد الشارة حسب الاسم:
على سبيل المثال، للعثور على شارة “المحب” (Enthusiast)، استخدم:
badge = Badge.find_by(name: "Enthusiast") -
امنح الشارة للمستخدم:
أخيرًا، امنح الشارة للمستخدم باستخدام هذا الأمر:
BadgeGranter.grant(badge, user)