إذا لم تكن هناك طريقة، يبدو أن هذه الطريقة تعمل فقط عند الربط مع فئة توصيل (أي مع منفذ إضافة). هل هناك خطوات خاصة يجب اتخاذها لإضافة منفذ إضافة جديد إلى قالب؟
أعتقد أنني نجحت في جعل هذا يعمل. الهدف: تحميل مواضيع معينة في مكان محدد في قالب جديد (على الأرجح يعمل أيضًا لإضافتها إلى القوالب الموجودة، لكنني لم أختبر ذلك):
قم بإدراج منفذ إضافة اختراعك الخاص في القالب الخاص بك (منفذ الإضافة الذي اخترعته يسمى “great-topics”، مثل):
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” في منفذ الإضافة في قالب الجديد.