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 „nobody“ (niemand) eingestellt ist, sollte die Gruppen-Mailbox meiner Meinung nach nicht sichtbar sein.
Ich stelle mir vor, dass eine Workaround-Lösung darin bestehen könnte, die #customization:theme-Komponente zu verwenden, um Gruppen als Klassen hinzuzufügen, und dann jede Gruppenklasse zu nutzen, um Gruppen-Mailboxes, die auf „nobody“ eingestellt sind, mit „display: none“ auszublenden. Ich empfehle die Verwendung von Gruppenklassen, da ich davon ausgehe, dass das Ausblenden per CSS im Allgemeinen auch die Gruppen-Mailbox der Moderatoren verbergen 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.