Привет, добро пожаловать обратно!
Если вы видите пустое место, значит у вас ошибка. find не существует в helper.
Обычно это можно увидеть в консоли браузера (F12).
Вам, скорее всего, нужно что-то вроде этого:
api.decorateWidget('post:before', (helper, args) => {
if (helper.widget.model.topic.category_id === 51) {
return helper.h("div.disclaimer", settings.MY_DISCLAIMER)
}
});
или с использованием сырого HTML:
const RawHtml = require("discourse/widgets/raw-html").default;
api.decorateWidget('post:before', (helper, args) => {
if (helper.widget.model.topic.category_id === 51) {
return new RawHtml({html: `<div class="container">${settings.MY_DISCLAIMER}</div>`})
}
});
Вы можете прочитать этот пост, где объясняется, как работает этот хелпер h.
Если вы хотите добавить HTML перед обработанным содержимым, можно сделать следующее:
api.decorateWidget('post-contents:before', (helper, args) => {
const { topic } = helper.widget.findAncestorModel();
if (topic && topic.category_id === 51) {
return helper.h("div.disclaimer", settings.MY_DISCLAIMER);
}
});