الوصول إلى حقول المستخدم المخصصة عبر JavaScript/API المكونات الإضافية

مرحباً، كنت أحاول تطبيق Our solution for blurring NSFW content - #5 by bartv - ولكن للأسف الكود لم يعد يعمل.
أنا عالق هنا ولم أتمكن من العثور على أي وثائق لواجهة برمجة تطبيقات Discourse JavaScript بشكل عام أو كيفية استرداد حقول المستخدم المخصصة.

لقد حاولت إضافة المقتطف المرفق إلى قسم header.html في سمة موقعي.
يبدو أن الكائن الذي يمكن الوصول إليه في JavaScript const user = api.getCurrentUser(); يحتوي على خاصية custom_fields وليس user_fields كما هو مذكور في المنشور المشار إليه.

ومع ذلك، فهو فارغ، أو أنني لا أعرف كيفية الاستعلام/ملئه بشكل صحيح. أشعر أنني سأحتاج إلى إضافة Ruby فعلية للوصول إلى هذه البيانات.

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

شكراً للقراءة o/

إذا نظرت إلى مخرجات .json لملف تعريف مستخدم، سترى سجل user_fields (مثل https://meta.discourse.org/u/pfaffman.json، باستثناء عدم وجود حقول مخصصة هنا). هذا هو المكان الذي توجد فيه حقول المستخدم التي تضيفها في واجهة المستخدم (إنها في الواقع نوع خاص من user_custom_field. لا يبدو أن user_custom_fields موجودة في سجل المستخدم في تدفق موضوع. لست متأكدًا مما إذا كانت موجودة في وقت ما ثم اختفت (قد يكون هذا خطأ). تحتاج إلى التأكد من أن حقول المستخدم الخاصة بك مرئية في تلك الإعدادات (عرض على بطاقة المستخدم، ربما؟).

مما أراه الآن، تحتاج إلى إنشاء إضافة (plugin) تضيف تلك الحقول المخصصة إلى الـ serializer.

إذا كان بإمكانك استخدام المجموعات (groups) بدلاً من حقل المستخدم المخصص الخاص بك، فقد تتمكن من حل مشكلتك.

إعجابَين (2)

هذا هو المكان الذي توجد فيه حقول المستخدم التي تضيفها في تجربة المستخدم (وهي في الواقع نوع خاص من user_custom_field)

أفهم، هذا يفسر تسمية المتغيرات. شكراً لك.

أعتقد أن نقطة النهاية /u/user.json تكشف فقط عن الحقول العامة نظرًا لإمكانية الوصول إليها بشكل عام. نظرًا لطبيعة المشكلة، أشك في أن الناس يرغبون في كشف تفضيلاتهم غير الآمنة للمحتوى (NSFW) في بطاقة المستخدم الخاصة بهم. لذلك، سأبحث في استخدام المجموعات كحل بديل أولاً :smiley:

إعجابَين (2)