В настоящее время я использую следующий виджет для отображения баннера/ссылки после первого сообщения в теме. Пока это работает отлично:
<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 08:17:00
2
OrkoGrayskull:
после первого сообщения
OrkoGrayskull:
Позиция, которую вы отметили на изображении, находится после всех сообщений темы. Таким образом, когда появятся ответы, ваш баннер будет располагаться под ними, а не сразу под первым сообщением.
piffy
12.Январь.2024 08:17:57
3
Там есть выход для плагинов под названием topic-above-footer-buttons
Это поможет вам их увидеть:
(deprecated) Plugin outlet locations theme component
Затем следуйте этому руководству:
Discourse includes hundreds of Plugin Outlets which can be used to inject new content or replace existing contend in the Discourse UI. ‘Outlet arguments’ are made available so that content can be customized based on the context.
Choosing an outlet
To find the name of a plugin outlet, search Discourse core for “<PluginOutlet”, or use the plugin outlet locations theme component. (e.g. topic-above-posts).
Wrapper outlets
Some outlets in core look like <PluginOutlet @name="foo" />. These allow you…
Спасибо. Всё сработало.
Пример кода для 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