الحصول على معلومات الموضوع

سؤال للمبتدئين: في دليل المطورين الخاص بكم (Developing Discourse Themes & Theme Components)، تشرحون كيفية الحصول على معلومات حول مستخدم باستخدام api.getCurrentUser(); ثم console.log(user). الأمر بسيط. ومع ذلك، كيف تحصلون على معلومات مماثلة حول موضوع (Topic) عندما تكونون في صفحة موضوع؟ لقد جربنا getTopic()، لكن لا توجد هذه الدالة. كيف نحصل على القيم المتاحة لموضوع معين في صفحة موضوع محددة، ثم نستخدم console.log لعرض ما هو متاح للاستخدام؟

هناك عدة طرق للقيام بذلك، ولكن بدلاً من التخمين واقتراح طرق قد لا تكون ذات صلة، أود أولاً التوضيح.

ما الذي تحاول فعله؟ وكيف؟

إذن، ما كنا نسعى لتحقيقه هو أننا نريد عرض رسائل HTML معينة على مستوى الموقع بأكمله، ولكن بدلاً من إدخالها يدويًا في كل موضوع، أردنا عرضها تلقائيًا بناءً على وسم الموضوع. لقد قررنا ببساطة تخزين الرسائل والوسوم في الإعدادات واستخدام عنصر واجهة (widget) لاستهداف الوسوم في المواضيع الفردية بناءً على حاوية Discourse. هل هذا هو النهج الصحيح؟ شيء من هذا القبيل:

 const container = Discourse.__container__;
 const topicController = container.lookup("controller:topic");
 tags = topicController.get("target.currentRoute.parent.attributes.tags");

ثم نقارن ببساطة الوسوم الموجودة في الموضوع بتلك المخزنة في الإعدادات، ونعرض HTML أو لا بناءً على المقارنة.