أستخدم حاليًا الأداة المصغرة التالية لعرض لافتة/رابط بعد المنشور الأول للموضوع. هذا يعمل بشكل جيد حتى الآن:
<script type="text/discourse-plugin" version="0.8">
const { iconNode } = require("discourse-common/lib/icon-library");
api.decorateWidget("post:after", helper => {
const firstPost = helper.attrs.firstPost;
const h = helper.h;
if (firstPost) {
return h("div#support", [
h(
'a.icon', {
href:'link',
title: 'Support-Icon'
}, iconNode('heart')),
h(
'a.link', {
href: "link",
title: 'Support-Link'
}, 'some text',
),
]);
}
});
</script>
ومع ذلك، أود دمج اللافتة/الرابط في مكان مختلف - وهو قبل زر الرد. لقد حددت الموضع باللون الأحمر أدناه:
هل يمكن لأي شخص أن يعطيني نصيحة حول كيفية تحقيق ذلك؟
أعلم أن الموضع/الوظيفة محددة بواسطة هذا. السؤال هو كيف أجد NAME:LOCATION هذا:
api.decorateWidget("NAME:LOCATION", helper => {
Moin
12 يناير 2024، 8:17ص
2
OrkoGrayskull:
بعد المنشور الأول
OrkoGrayskull:
الموضع الذي حددته في الصورة هو بعد جميع منشورات الموضوع. لذلك، عندما تكون هناك ردود، ستكون اللافتة الخاصة بك أسفل هذه الردود وليس مباشرة أسفل المنشور الأول.
piffy
12 يناير 2024، 8:17ص
3
يوجد منفذ إضافي هناك يسمى topic-above-footer-buttons
يساعدك هذا في رؤيتها:
(deprecated) Plugin outlet locations theme component
ثم اتبع هذا الدليل:
يتضمن Discourse مئات من نقاط الإضافة (Plugin Outlets) التي يمكن استخدامها حقن محتوى جديد أو استبدال محتوى موجود في واجهة Discourse. يتم توفير “حجج الإخراج” (Outlet arguments) بحيث يمكن تخصيص المحتوى بناءً على السياق.
اختيار نقطة الإخراج
لإيجاد اسم نقطة الإضافة، ابحث في نواة Discourse عن “<PluginOutlet”، أو استخدم مكوّن ثيم مواقع نقاط الإضافة . (مثلاً: topic-above-posts).
نقاط الإخراج المغلفة (Wrapper outlets)
تبدو بعض نقاط الإخراج في النواة على شكل <PluginOutlet @name="foo" />. تتيح لك هذه الحق…
شكرا لك. لقد نجح الأمر.
مثال على الكود لـ Head:
<script type='text/x-handlebars' data-template-name='/connectors/topic-footer-main-buttons-before-create/team-support'>
<div id="support">
<a href="link" title="Support-Icon" class="icon">
<svg class="fa d-icon d-icon-heart svg-icon svg-node" aria-hidden="true"><use xlink:href="#heart"></use></svg>
</a>
<a href="link" title="Support-Link" class="link">text</a>
</div>
</script>
للأسف، لا يتم عرض الزر/الشعار إلا عندما يكون المستخدم مسجلاً دخوله. كيف يمكنني التأكد من عرض الزر/الشعار للمستخدمين غير المسجلين أيضًا؟
أنا أستخدم موضع السمة هذا: topic-footer-main-buttons-before-create