Возможно ли изменить иконку, используемую в уведомлениях для сотрудников, — либо через CSS, либо через настройку, которую я просто не нашёл? В идеале мы хотели бы заменить её на собственное изображение, а не на иконку FA.
У нас нет настройки для этого, и я думаю, что сделать это только с помощью 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>
С темами и компонентами тем возможности безграничны. Если вы хотите узнать больше, у нас есть ресурс для этого:
Я только что попробовал это; первый фрагмент кода 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");
});
});
Я не рассматривал использование изображения, извините.
После добавления этого в мою тему я увидел предупреждение из-за Upcoming post stream changes - How to prepare themes and plugins. Поэтому я беспокоюсь, что скоро потребуется ещё одно обновление.
Я попробовал это, потому что мне было интересно, влияет ли это только на заметки сотрудников или также на заметки новых и возвращающихся пользователей, так как все они являются уведомлениями о сообщениях.
Это влияет на все уведомления о сообщениях, в то время как приведённый выше CSS скрывает только щит. В результате на уведомлениях для новых и возвращающихся пользователей появляются две иконки.
Это всё немного неудовлетворительно!!
В спешке с публикацией я упустил, что не удалил api.decorateWidget. Должно быть, я отмахнулся от ошибки на своём сайте, не осознав этого.
Уверен, что CSS можно было бы настроить лучше, но я только что обнаружил Quote Callouts — это, думаю, лучше подойдёт для моего случая.


