لقد كنت أحاول معرفة كيفية السماح للمستخدمين بإنشاء منتديات فرعية تعمل مثل قنوات Slack.
كان أحد الاقتراحات هو استخدام الوسوم. بحيث يقوم المستخدم بإنشاء وسم (أو يمكن لتطبيق أقوم ببنائه القيام بذلك عبر واجهة برمجة التطبيقات)، وتعمل صفحة ذلك الوسم كصفحة المنتدى الفرعي.
السؤال إذن هو: كيف نجعل الأمر بحيث يتمكن فقط أعضاء المنتدى الفرعي من النشر في ذلك المنتدى؟ بعبارة أخرى، أن يتمكن فقط أعضاء ذلك المنتدى الفرعي من ربط الوسم الخاص بالمنتدى الفرعي بمنشوراتهم.
هل توجد طريقة لاستخدام “حقول المستخدم المخصصة” لتحقيق ذلك؟ بطريقة ما لتمييز مستخدم بأنه مُصرّح له بالنشر باستخدام وسم معين؟
لا أفهم تمامًا الغرض من حقول المستخدم المخصصة، لذا آمل في فهم المزيد.
شكرًا على الردود، يا أصدقاء. أتفق معكم أن الفئات تبدو الطريقة الأسهل للقيام بذلك. لكن، هذه ستكون منتديات فرعية يمكن للمستخدمين إنشاؤها بكثرة. قد يكون هناك المئات أو أكثر (المنتديات الفرعية جزء أساسي من التطبيق، لذا ستنمو مع نمو قاعدة المستخدمين).
أُخبرتُ أن إنشاء المئات/الآلاف من الفئات سيسبب مشكلة كبيرة، لذا يجب أن أبحث عن حلول أخرى. هل لديكم اقتراحات أخرى؟ أنا مستعد لبناء تطبيق منفصل يتفاعل مع واجهة برمجة التطبيقات (API). الشيء الرئيسي الذي أريده من Discourse هو وظائف المنشورات/الردود/الوسوم المتميزة.
أنت تريد منصة شبيهة بـ Reddit أو Discord، حيث يمكن للأفراد الدخول وإنشاء مجتمعات (subreddits) أو خوادم (servers) يملكونها، بينما تحتفظ أنت بالسيطرة الكاملة على المنصة وبأرباحها.
يهدف Discourse إلى عكس ذلك تمامًا، حيث يسمح لكل مجتمع (subreddit) أو خادم (server) أو اتحاد (guild) بأن يكون موقعًا مستقلًا يملك بياناته ويعمل تحت عنوان URL خاص به.
على الرغم من أنه يمكنك تعديل مشروع مفتوح المصدر إلى حد كبير، إلا أنني أنصحك باستخدام أداة أخرى أقرب إلى ما تطلبه.
أقدر أن هذا ليس الحالة الاستخدامية المعتادة، لكنني أود بالتأكيد إيجاد طريقة للقيام بذلك باستخدام Discourse، نظرًا لروعة Discourse. ويمكنني الاقتراب إلى حد معقول من ذلك — فأنا أنشئ وسمًا عبر واجهة برمجة التطبيقات (API)، وأرسل المستخدمين إلى صفحة الوسم التي تعمل كصفحة المنتدى الفرعي. العنصر الرئيسي الذي ينقصني هو القدرة على تقييد المستخدمين الذين يمكنهم النشر باستخدام ذلك الوسم.
لا يمكن استخدام Discord لهذه الأغراض بسبب القيود التي يفرضونها فيما يتعلق بالتكامل مع التطبيقات. كما أنني لست على دراية بكيفية دمج Reddit مع تطبيق ما.
هل تقترح أنني يمكنني فعليًا تحقيق ذلك باستخدام Reddit، أم أنك تقصد فقط أن هذا هو “نوع” الوظيفة التي أبحث عنها؟
في كلتا الحالتين، الفائدة الرئيسية لـ Discourse من وجهة نظري هي أنه منتدى وليس دردشة. والوظائف الشبيهة بالمنتديات هي ما أريده هنا. لم أرَ بدائل لـ Discourse يمكن أن تعمل في هذا الصدد، لكنني بالتأكيد منفتح على الاقتراحات.
لقد رأيت تلك المواضيع. الفرق هنا هو أنني مستعد لبناء تطبيق منفصل تمامًا يتفاعل بعد ذلك مع واجهة برمجة تطبيقات Discourse لتقديم تجربة إنشاء مجموعة فرعية للمستخدم. لذا، يمكنني إنشاء المجموعة الفرعية بنفسي في التطبيق المنفصل، وربط الأعضاء بها، وما إلى ذلك.
لكنني أود أن أظل قادرًا على استخدام وظائف النشر في واجهة Discourse الأمامية (إنشاء المواضيع، والرد، والربط بالفئات، وإضافة الوسوم بشكل أساسي) على صفحة المنتدى الفرعي التي أنشأها تطبيقي.
أُخبرت أن هناك طريقة لربط حقول المستخدم المخصصة بالوسوم، أو شيء من هذا القبيل، لتحديد الوسوم التي يمكن للمستخدم نشرها.
لكن الأمل الجوهري هو ما ذكرته سابقًا: يمكنني التعامل مع الكثير من إعدادات المنتدى الفرعي من جانب تطبيقي، لكن سيكون من المدخر للوقت أن أظل قادرًا على استخدام وظائف النشر في Discourse.
أقدر جميع الردود. هل يمكن لأحد أن يقدم بعض الأمثلة حول كيفية استخدام حقول المستخدمين المخصصة عادةً؟
يبدو لي أنه يمكنني ببساطة إضافة حقل مخصص مرتبط بكل منتدى فرعي محدد (مثل ‘subforum123’) إلى كل مستخدم مسموح له، ثم عند دخول المستخدم إلى صفحة المنتدى الفرعي، أستدعي واجهة برمجة التطبيقات (API) للتحقق مما إذا كان لدى المستخدم الحقل المخصص المطلوب. إذا كان نعم، فيمكنه النشر هناك. وإذا لم يكن كذلك، فلا يمكنه النشر، وربما أقوم بإخفاء أزرار “موضوع جديد” و"رد" فقط.
ربما ما تريد فعله هو تمكين الأشخاص من إنشاء منصة discourse خاصة بهم (على سبيل المثال، username.yoursite.com) تعمل ضمن تثبيت متعدد المواقع، حيث تكون منصتك الرئيسية “المنزل” هي خادم SSO للمستخدم الفرعي. يمكنك نظريًا إنشاء إضافة تقوم بإنشاء موقع discourse جديد على username.yoursite.com كلما تم إنشاء مستخدم جديد. ولكن ربما لا يرغب كل مستخدم في الحصول على منتدى فرعي خاص به، وبدلاً من ذلك سيكون لديك… شيء ما… يسمح لهم بإنشاء موقعهم الفرعي.
هذا يقترب بالفعل مما في ذهني (كانت “المنتديات الفرعية” هي الهدف). شكرًا لك. سأبحث أكثر في المواقع المتعددة.
كنت أعتقد أن السماح للمستخدمين بإنشاء موقع فرعي خاص بهم في هيكل المواقع المتعددة سيكون أكثر استهلاكًا للموارد بكثير مقارنة، على سبيل المثال، بالسماح للمستخدمين بإنشاء فئات خاصة بهم. هل يمكن للمواقع المتعددة العمل مع مئات المواقع الفرعية أو أكثر؟ أتساءل عن مقدار الضغط الذي سيسببه ذلك على الخادم، أو ربما لا يكون الضغط أكبر بكثير من موقع واحد نشط؟
نعم، أنا على علم بشركة واحدة على الأقل لديها مئات المواقع الفرعية أو أكثر، مع مجموعتين مختلفتين على الأقل من الإضافات، بتكلفة تتراوح بين 100 و300 دولار شهريًا. بينما تفرض شركات أخرى 20 دولارًا شهريًا لكل موقع.
وللتوضيح، فأنت في الأساس تبني شركة استضافة لـ Discourse.
ستحتاج إلى ذاكرة عشوائية (RAM) تتراوح بين 4 و16 جيجابايت للبدء، على سبيل المثال، لتشغيل بضعة عشرات من المواقع.
للتأكد، هل تقصد أن هذه الشركة تدفع 100-300 دولار شهريًا لصيانة مئات المواقع الفرعية؟ (يبدو أن هذا ما تقصده - وهذا مبلغ منخفض جدًا لمئات المواقع الفرعية)
أقصد أن شركة واحدة (الشركة التي تطوّر Discourse) تفرض رسومًا تتراوح بين 100 و300 دولار لكل موقع تريد إنشاؤه. بينما تفرض شركات أخرى حوالي 20 دولارًا شهريًا؛ ومن المفترض أنهم يحققون أرباحًا جيدة من ذلك.
من المرجح أن حل المشكلة التي اقترحتها يستغرق على الأقل مائة ساعة، وربما أكثر من ذلك.
تعديل: لكن ربما إذا كنت تريد فقط موقعًا متعدد المواقع واحدًا، فيمكنك البدء فيه في وقت أقل من ذلك.