Кнопки «Сообщение» и «Чат» на странице собственного профиля пользователя

Привет!

На странице своего профиля есть запутанные кнопки «Сообщение» и «Чат». На мобильных устройствах это особенно заметно, и некоторые мои пользователи (и я сам) находят это особенно непонятным при первом посещении своей страницы профиля.

Кажется, что это обсуждалось несколько лет назад, и было внесено изменение для кнопки «Сообщение», но я всё ещё вижу её. Возможно, это ошибка? Или, может быть, я неправильно понял суть внесённого изменения.

Чтобы сделать интерфейс более удобным для пользователей, я считаю, что имеет смысл убрать эти кнопки со страницы профиля самого пользователя.

2 лайка

В качестве обходного решения вы можете скрыть эти кнопки с помощью CSS:

section.controls > ul > li > button.compose-pm, section.controls > ul > li.chat-button {
    display: none !important;
}

Этот код можно разместить на вкладке «Мобильные» в экране «Редактировать CSS/HTML» в новой теме/компоненте (установите флажок «Показать расширенные настройки»).

2 лайка

Гораздо лучше! Спасибо за CSS-код — всё работает как по маслу, и я сам бы не смог разобраться :upside_down_face: Я настроил это и для десктопа, и для мобильных устройств.

EDIT: Ха-ха, поспешил. CSS-код скрывает кнопки на всех страницах пользователей/профилей, а не только на своей собственной. Возможно, всё же оставлю как есть :thinking:

@donaldsoncd Хм… возможно, есть способ это сделать. Я посмотрю.

1 лайк

@donaldsoncd Попробуйте добавить этот фрагмент во вкладку JS. Он скроет кнопки только на ваших страницах пользователей. Кнопки по-прежнему будут отображаться на карточке пользователя.

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer((api) => {
  api.onPageChange((url, title) => {
      if (url.startsWith("/u/natedhaliwal")) {
          const pmBtn = document.querySelector("button.compose-pm");
          pmBtn.style.display = "none";
          const chatBtn = document.querySelector("li.user-card-below-message-button.chat-button");
          if (chatBtn.parentNode.className != "usercard-controls") {
              chatBtn.style.display = "none";
          }
      }
  });
});

Это немного костыльное решение, но оно работает.
Вы можете заменить часть /u/natedhaliwal на /u/<username>.


Если вы хотите полностью запретить всем пользователям отправлять вам личные сообщения или сообщения в чате, вам нужно:

  1. Перейти на discourse.example.com/my/preferences/users.
  2. Снять галочку с пункта Разрешить другим пользователям отправлять мне личные сообщения и прямые сообщения в чате.

Надеюсь, это поможет!

Привет, @donaldsoncd

Спасибо, что обратили на это наше внимание. Я согласен, что отображение их на вашем собственном профиле немного нелепо.

Я внес соответствующие изменения (PR). Они должны исчезнуть после обновления.

Спасибо!

4 лайка

Гораздо лучше :slight_smile: Спасибо!

1 лайк