是否可以通过 CSS 或某个尚未找到的设置来更改“员工通知”中使用的图标?我们更希望能将其替换为自定义图片,而不是 FontAwesome 图标。
1 个赞
我们没有为此提供设置,我认为仅通过 CSS 实现比较困难,但您可以创建一个主题组件来替换它。
在 CSS 中,您可以隐藏旧图标:
.post-notice {
.d-icon-user-shield {
display: none;
}
}
在 JavaScript 中(将此代码放入主题组件的 <head> 部分),您可以装饰通知并添加新图标:
<script type="text/discourse-plugin" version="0.8">
const { iconNode } = require("discourse-common/lib/icon-library");
api.decorateWidget('post-notice:before', helper => {
return iconNode('heart');
});
</script>
或者,如果您想替换为图片:
<script type="text/discourse-plugin" version="0.8">
api.decorateWidget('post-notice:before', helper => {
return helper.h('img', {
src: 'https://www.discourse.org/a/img/home-spot-1.png',
style: 'margin-right: 0.65em',
height: 30,
width: 30
});
});
</script>
借助主题和主题组件,您可以实现的功能几乎无限。如果您想进一步了解,我们提供了相关资源:
12 个赞
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
我已经试过了;第一个 JS 代码片段需要稍作更新。
现在需要将其放入主题组件(或主题)的 JS 选项卡中:
import { apiInitializer } from "discourse/lib/api";
import { iconNode } from "discourse-common/lib/icon-library";
export default apiInitializer("0.11.1", (api) => {
api.decorateWidget("post-notice:before", () => {
return iconNode("heart");
});
});
抱歉,我没看如何使用图片。
3 个赞
添加到我的主题后,我看到了一个警告,因为 Upcoming post stream changes - How to prepare themes and plugins
我尝试这样做是因为我想知道它是否仅影响员工笔记,还是也影响新用户和回访用户笔记,因为这些都是帖子通知。
它会影响所有帖子通知,而上面的 CSS 只会隐藏盾牌。因此,您在新用户和回访用户通知上会看到两个图标。
1 个赞
那这一切都有些不尽如人意!!
我急于发布那条消息,却忘了删除 api.decorateWidget。我一定是在没注意的情况下忽略了我网站上的错误。
我相信 CSS 可以被更好地定位,但我刚刚发现了 Quote Callouts - 我认为这能更好地满足我的用例。
3 个赞


