| ملخص | إدارة عضوية المجموعات تلقائيًا | |
| رابط المستودع | https://github.com/communiteq/discourse-dynamic-groups | |
| دليل التثبيت | كيفية تثبيت الإضافات في Discourse |
الميزات
تحتاج مجتمعات Discourse في كثير من الأحيان إلى أتمتة عضويات المجموعات بناءً على شروط مثل امتلاك الشارات أو العضويات الحالية في مجموعات أخرى.
تشمل حالات الاستخدام الشائعة:
-
المستخدمين غير المنتمين إلى مجموعة “المشتركين”
-
المستخدمين غير المحظورين من النشر في Marketplace
-
المستخدمين الذين يتمتعون بمستوى ثقة 0 أو مستوى ثقة 1، ولكن ليس مستوى ثقة 2
-
المستخدمين الذين أكملوا درس المستخدم الجديد أو كانوا أعضاء لمدة تزيد عن عام
-
المستخدمين المنتمين إلى client_1 أو client_2 أو client_3 وغير المنتمين إلى فئة المتدربين
كان حل هذه المسائل في السابق يتطلب سكريبتات مخصصة تقوم بمزامنة المجموعات بشكل دوري. يلغي إضافة المجموعات الديناميكية الحاجة إلى ذلك.
تقدم هذه الإضافة حقل تعبير منطقي (Boolean expression) إلى إعدادات المجموعة، مما يسمح للمسؤولين بتعريف قواعد تحدد عضوية المجموعة ديناميكيًا.
أمثلة:
-
المستخدمين غير المنتمين إلى مجموعة “المشتركين”
trust_level_0 AND NOT subscribers -
المستخدمين غير المحظورين من النشر في Marketplace
trust_level_2 AND NOT banned_users -
المستخدمين الذين يتمتعون بمستوى ثقة 0 أو مستوى ثقة 1 ولكن ليس مستوى ثقة 2
trust_level_0 AND NOT trust_level_2 -
المستخدمين الذين أكملوا درس المستخدم الجديد أو كانوا أعضاء لمدة تزيد عن عام
badge:certified OR badge:anniversary -
المستخدمين المنتمين إلى العميل 1 أو 2 أو 3 وغير المنتمين إلى فئة المتدربين
(client_1 OR client_2 OR client_3) AND NOT interns
التكوين
بمجرد تثبيت الإضافة وتفعيلها، ستظهر علامة تبويب جديدة في واجهة إدارة المجموعات:
عند إدخال أو تحديث التعبير المنطقي، ستستغرق النظام بضع لحظات لملء المجموعة بالمستخدمين المطابقين. من ذلك الحين فصاعدًا، سيتم تحديث عضوية المجموعة تلقائيًا عند تغيير حالة المستخدم.
مهم:
عند تعريف قاعدة، تُحدد المجموعة على أنها تلقائية، مما يعطل التغييرات اليدوية على الأعضاء. للعودة إلى الإدارة اليدوية للمجموعة، ما عليك سوى مسح حقل التعبير. سيظل الأعضاء الحاليون كما هم، وستستعيد التحكم اليدوي.
