У нас на сайте есть несколько старых групп, в которых нет сообщений ни во входящих, ни в архиве, но они всё ещё отображаются в боковой панели и по адресу /my/messages.
Это, безусловно, похоже на ошибку. Если группа установлена в «никто», почтовый ящик группы, на мой взгляд, не должен быть виден.
Я представляю, что обходным решением может быть использование #theme-component для добавления групп в качестве классов, а затем использование класса каждой группы для установки свойства display: none для почтовых ящиков групп, установленных в «никто». Я предлагаю использовать классы групп, так как, если вы скроете их с помощью CSS в общем случае, это может также скрыть почтовый ящик группы модераторов.
Были ли в тех старых группах ранее сообщения? У меня есть группа на моём личном сайте, в которой было всего одно сообщение, и папка «Входящие» отображалась в боковой панели. Я удалил это сообщение, но папка «Входящие» группы всё ещё видна.
Удалённое сообщение больше не отображается во входящих, даже для меня как администратора. Я смог вернуться к нему через историю браузера и убедиться, что оно всё ещё существует как удалённое сообщение. Я попытался удалить группу, но система не позволила мне это сделать. Я восстановил сообщение, затем удалил группу. После этого окончательно удалил сообщение.
Папка «Входящие» всё ещё отображается — значит, я подозреваю, что в этой папке группы всё ещё есть какое-то другое удалённое сообщение.
Так что да, здесь, думаю, есть баг: если в папке «Входящие» группы есть только удалённые сообщения, то эта папка не должна отображаться в боковой панели.
На данный момент, думаю, единственное решение — удалить группу и создать её заново.
Было бы интересно использовать Data Explorer, чтобы получить ID постов любых удалённых сообщений в папке «Входящие» группы и подтвердить свою теорию, а также посмотреть на эти посты.
Я запустил задачу по проверке целостности базы данных, но почтовые ящики всё ещё отображаются. Я являюсь администратором сайта, если это имеет значение. Однако они должны исчезнуть, так как пусты — в latest, new, unread, archive нет сообщений.
Возвращает ли этот запрос к обозревателю данных какие-либо темы?
-- [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
)
Оно должно отображать темы только в том случае, если показан ящик входящих сообщений.
Я уже нашел способ, как это может происходить даже при пустом ящике входящих сообщений:
После того, как сообщение, отправленное в эту группу, превращается в публичную тему.
Итак:
Создайте новую группу
Разрешите отправлять сообщения в группу хотя бы администраторам
Добавьте участника в группу, чтобы проверить, отображается ли ящик входящих сообщений
Отправьте сообщение в группу
Используйте опцию «Сделать публичной темой» в меню гаечного ключа администратора
Ящик входящих сообщений пуст, но даже после выполнения задачи согласованности базы данных ящик входящих сообщений не исчезает
В этом случае приведенный выше запрос Data Explorer возвращает эту тему.