أعتقد أنني نجحت في جعل هذا يعمل. الهدف: تحميل مواضيع معينة في مكان محدد في قالب جديد (على الأرجح يعمل أيضًا لإضافتها إلى القوالب الموجودة، لكنني لم أختبر ذلك):
- قم بإدراج منفذ إضافة اختراعك الخاص في القالب الخاص بك (منفذ الإضافة الذي اخترعته يسمى “great-topics”، مثل):
{{plugin-outlet name="great-topics"}}
- أضف كود Handlebars (أي المكون الخاص بك) في موصل:
[your-plugin]/assets/javascripts/discourse/connectors/great-topics/new-component.hbs
<div>أنا داخل منفذ الإضافة! قم بتحميل المواضيع:</div>
{{topic-list topics=featuredTopics showPosters=true}}
- أضف كود جافا سكريبت للمكون الموجود في موصلك الجديد:
[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” في منفذ الإضافة في قالب الجديد.
لرؤية هذا يعمل، سيتعين عليك إعادة تشغيل الخادم.