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

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

  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” في منفذ الإضافة في قالب الجديد.

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

إعجاب واحد (1)