Пытаюсь отобразить ответы самому себе в цвете

Привет,
Я пытаюсь добавить новый класс к topic-post для пользователей, отвечающих самим себе. По сути, я хочу отображать собственные сообщения в темах с другим оформлением.
Эта функция полезна, когда шаблон разработан в стиле мессенджера.

Уже определена ли эта функция где-либо?

Это уже возможно с помощью CSS-класса .topic-owner. Вы можете использовать следующий CSS для подсветки собственных ответов:

.topic-owner .topic-body {
  background: #fffaaa;
}
8 лайков

Но класс topic-owner присваивается только ответам создателя темы. Мне нужен класс, например, с именем my-own, чтобы добавлять его к другим ответам, если их написал авторизованный пользователь.

Как в мессенджере: мои ответы отображаются справа, а ответы других — слева в облачках.

1 лайк

Вы можете сделать это, добавив следующий код в заголовок вашей темы (или в заголовок компонента темы):

<script type="text/discourse-plugin" version="0.8">
    const currentUser = api.getCurrentUser();
    api.addPostClassesCallback((attrs) => {
        if (currentUser && currentUser.id === attrs.user_id) {
            return ["post-by-current-user"];
        } else {
            return [];
        }
    });
</script>

Затем вы можете использовать класс post-by-current-user в вашем стиле.

11 лайков

Вау, я думал, что для этого потребуется много изменений.
Discourse действительно впечатляет…

Большое спасибо!

5 лайков