Wir haben eine Reihe von alten Gruppen auf unserer Website, die keine Nachrichten in ihrem Posteingang oder Archiv haben, aber sie sind immer noch in der Seitenleiste und unter /my/messages sichtbar.
Das klingt definitiv nach einem Fehler. Wenn es auf niemanden gesetzt ist, sollte die Gruppen-Mailbox meiner Meinung nach nicht sichtbar sein.
Ich stelle mir vor, dass eine provisorische Lösung darin bestehen könnte, die Theme component zu verwenden, um Gruppen als Klassen hinzuzufügen, und dann jede Gruppenklasse zu verwenden, um Gruppen-Mailboxen, die auf niemanden gesetzt sind, auszublenden. Ich sage, man soll Gruppenklassen verwenden, da ich mir vorstelle, dass es, wenn man CSS verwendet, um sie im Allgemeinen auszublenden, auch die Moderatoren-Gruppen-Mailbox ausblenden könnte.
Hatten diese alten Gruppen zuvor Nachrichten? Ich habe eine Gruppe auf meiner persönlichen Website, die nur eine Nachricht enthielt, und die Inbox erscheint in der Seitenleiste. Ich habe die Nachricht gerade gelöscht und die Gruppen-Inbox wird immer noch angezeigt.
Die gelöschte Nachricht wird nicht mehr in den Inboxes angezeigt, nicht einmal für mich als Administrator. Ich konnte sie in meinem Browserverlauf zurückverfolgen und sehen, dass sie als gelöschte Nachricht noch existiert. Ich habe versucht, die Gruppe zu entfernen, aber es hat nicht funktioniert. Ich habe sie wiederhergestellt und die Gruppe entfernt. Dann habe ich die Nachricht zur Sicherheit gelöscht.
Die Inbox wird immer noch angezeigt - daher vermute ich, dass sich noch eine andere gelöschte Nachricht in dieser Gruppen-Inbox befindet.
Ja, hier gibt es einen Fehler, denke ich - wenn die einzigen Nachrichten in einer Gruppen-Inbox gelöscht sind, sollte die Gruppen-Inbox nicht in der Seitenleiste erscheinen.
Die einzige Lösung im Moment ist meiner Meinung nach, die Gruppe zu löschen und neu zu erstellen.
Es wäre interessant, den Data Explorer zu verwenden, um die Post-ID aller gelöschten Nachrichten in einer Gruppen-Inbox zu erhalten, um meine Theorie zu bestätigen und diese Beiträge anzusehen.
Ich habe den Datenbankkonsistenz-Job ausgeführt, aber die Posteingänge sind immer noch da. Ich bin ein Administratorbenutzer auf der Website, falls das einen Unterschied macht. Aber sie sollten verschwinden, da sie leer sind – latest, new, unread, archive haben keine Nachrichten.
-- [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
)
Es sollte nur Themen anzeigen, wenn die Inbox angezeigt wird.
Ich habe bereits einen Weg gefunden, damit dies geschieht, auch wenn die Inbox leer ist:
Nachdem eine Nachricht, die an diese Gruppe gesendet wurde, in ein öffentliches Thema umgewandelt wurde.
Also:
Erstellen Sie eine neue Gruppe
Erlauben Sie mindestens Administratoren, die Gruppe zu benachrichtigen
Fügen Sie ein Mitglied zur Gruppe hinzu, um zu prüfen, ob die Inbox angezeigt wird
Senden Sie eine Nachricht an die Gruppe
Verwenden Sie die Option „Öffentliches Thema erstellen“ im Admin-Menü
Die Inbox ist leer, aber auch nachdem der Konsistenzjob für die Datenbank ausgeführt wurde, verschwindet die Inbox nicht
Und in diesem Fall gibt die obige Data Explorer-Abfrage dieses Thema zurück.