Групповые почтовые ящики и архивы видны даже в пустом виде

Привет, друзья,

У нас на сайте есть несколько старых групп, в которых нет сообщений ни во входящих, ни в архиве, но они всё ещё отображаются в боковой панели и по адресу /my/messages.

Я нашёл старую тему, но предложенное там решение мне не подошло: Messaging: Group inboxes and archives show even after all messages deleted

Есть ли у кого-нибудь другие идеи?

3 лайка

Эти старые группы… Я wondering, если вы редактируете группу и меняете

«Кто может писать в эту группу?» на «Никто»?

Или эти старые группы всё ещё требуют наличия почтового ящика группы?

1 лайк

Приношу извинения за задержку с ответом, но во всех группах настройка «Кто может писать в эту группу» установлена в значение «Никто».

Есть ли что-то ещё, что я могу проверить?

1 лайк

Это, безусловно, похоже на ошибку. Если группа установлена в «никто», почтовый ящик группы, на мой взгляд, не должен быть виден.

Я представляю, что обходным решением может быть использование #theme-component для добавления групп в качестве классов, а затем использование класса каждой группы для установки свойства display: none для почтовых ящиков групп, установленных в «никто». Я предлагаю использовать классы групп, так как, если вы скроете их с помощью CSS в общем случае, это может также скрыть почтовый ящик группы модераторов.

Были ли в тех старых группах ранее сообщения? У меня есть группа на моём личном сайте, в которой было всего одно сообщение, и папка «Входящие» отображалась в боковой панели. Я удалил это сообщение, но папка «Входящие» группы всё ещё видна.

Удалённое сообщение больше не отображается во входящих, даже для меня как администратора. Я смог вернуться к нему через историю браузера и убедиться, что оно всё ещё существует как удалённое сообщение. Я попытался удалить группу, но система не позволила мне это сделать. Я восстановил сообщение, затем удалил группу. После этого окончательно удалил сообщение.

Папка «Входящие» всё ещё отображается — значит, я подозреваю, что в этой папке группы всё ещё есть какое-то другое удалённое сообщение.

Так что да, здесь, думаю, есть баг: если в папке «Входящие» группы есть только удалённые сообщения, то эта папка не должна отображаться в боковой панели.

На данный момент, думаю, единственное решение — удалить группу и создать её заново.

Было бы интересно использовать Data Explorer, чтобы получить ID постов любых удалённых сообщений в папке «Входящие» группы и подтвердить свою теорию, а также посмотреть на эти посты.

2 лайка

Вы запускали задачу проверки согласованности базы данных после этого? Мне кажется, что после её выполнения входящие больше не будут отображаться

2 лайка

Отличная идея! У меня это сработало.

Редакция: тема в первом сообщении, ссылка на которую приведена, помогла мне. Интересно, что у тебя происходит, @alehandrof.. проблема наконец исчезла?

1 лайк

Я запустил задачу по проверке целостности базы данных, но почтовые ящики всё ещё отображаются. Я являюсь администратором сайта, если это имеет значение. Однако они должны исчезнуть, так как пусты — в latest, new, unread, archive нет сообщений.

Я в тупике :frowning:

2 лайка

Возвращает ли этот запрос к обозревателю данных какие-либо темы?

-- [params]
-- group_id :inboxgroup

SELECT tg.topic_id, t.id AS topic_exists, t.deleted_at
FROM topic_allowed_groups tg
LEFT JOIN topics t ON t.id = tg.topic_id
WHERE tg.group_id = :inboxgroup
  AND (
    t.deleted_at IS NULL
    OR t.id IS NULL
  )

1 лайк

В моём случае это не так. :+1:

1 лайк

Оно должно отображать темы только в том случае, если показан ящик входящих сообщений.

Я уже нашел способ, как это может происходить даже при пустом ящике входящих сообщений:
После того, как сообщение, отправленное в эту группу, превращается в публичную тему.

Итак:

  1. Создайте новую группу
  2. Разрешите отправлять сообщения в группу хотя бы администраторам
  3. Добавьте участника в группу, чтобы проверить, отображается ли ящик входящих сообщений
  4. Отправьте сообщение в группу
  5. Используйте опцию «Сделать публичной темой» в меню гаечного ключа администратора
  6. Ящик входящих сообщений пуст, но даже после выполнения задачи согласованности базы данных ящик входящих сообщений не исчезает

В этом случае приведенный выше запрос Data Explorer возвращает эту тему.

2 лайка