تحميل المواضيع في منفذ إضافة جديد قمت بإضافته

أعتقد أنني نجحت في جعل هذا يعمل. الهدف: تحميل مواضيع معينة في مكان محدد في قالب جديد (على الأرجح يعمل أيضًا لإضافتها إلى القوالب الموجودة، لكنني لم أختبر ذلك):

  1. قم بإدراج منفذ إضافة اختراعك الخاص في القالب الخاص بك (منفذ الإضافة الذي اخترعته يسمى “great-topics”، مثل):

{{plugin-outlet name="great-topics"}}

  1. أضف كود Handlebars (أي المكون الخاص بك) في موصل:

[your-plugin]/assets/javascripts/discourse/connectors/great-topics/new-component.hbs

<div>أنا داخل منفذ الإضافة! قم بتحميل المواضيع:</div>
{{topic-list topics=featuredTopics showPosters=true}}
  1. أضف كود جافا سكريبت للمكون الموجود في موصلك الجديد:

[your-plugin]/assets/javascripts/discourse/connectors/great-topics/new-component.js.es6
[تم تكييف هذا الكود من منشور ميتا التالي الذي يحتوي على كود لتحميل المواضيع التي تحمل الوسم “featured”: https://meta.discourse.org/t/how-to-add-a-featured-topic-list-to-your-discourse-homepage/132949]

const ajax = require('discourse/lib/ajax').ajax;
const Topic = require('discourse/models/topic').default;

setupComponent(args, component) {
 ajax("/tag/featured.json").then(function (result) {
                 
   let featuredTopics = [];
   // إنشاء مصفوفة فارغة، سنضيف المواضيع إليها

   var featuredUsers = result.users;
   // الحصول على المستخدمين ذوي الصلة

   result.topic_list.topics.slice(0, 4).forEach(function (topic) {
   // نقوم باستخراج المواضيع بدءًا من 0 وانتهاءً بـ 4
   // هذا يعني أننا سنعرض 3 مواضيع إجمالاً. زد الرقم 4 لعرض المزيد.

     topic.posters.forEach(function (poster) {
        poster.user = $.grep(featuredUsers, function (e) { return e.id == poster.user_id; })[0];
                        });
         // ربط المستخدمين بموضوعنا

      featuredTopics.push(Topic.create(topic));
        // إضافة مواضيعنا إلى مصفوفة featuredTopics
     });
   }) //نهاية result.topic.topic_list...
                    
component.set('featuredTopics', featuredTopics);  //هنا تتم إضافة المواضيع إلى المكون
 
component.set("loadingTopics", false); //الكود أعلاه لا يحتوي على مؤشر تحميل. لكن هذا موجود في حال رغبت في إضافة مؤشر تحميل. يجب إضافته إلى ملف hbs أيضًا. انظر المنشور المرتبط في ميتا أعلاه

  }); //نهاية ajax 


 }//نهاية setup component


هذا يعمل معي، على الأقل، لتحميل المواضيع التي تحمل الوسم “featured” في منفذ الإضافة في قالب الجديد.

لرؤية هذا يعمل، سيتعين عليك إعادة تشغيل الخادم.