여러분, 안녕하세요.
저희 사이트에는 받은 편지함이나 아카이브에 메시지가 하나도 없는데도 사이드바와 /my/messages 페이지에서 여전히 표시되는 오래된 그룹들이 여러 개 있습니다.
이 오래된 주제를 찾았지만, 제 환경에서는 작동하지 않는 해결책만 나와 있습니다: Messaging: Group inboxes and archives show even after all messages deleted
다른 아이디어가 있을까요?
여러분, 안녕하세요.
저희 사이트에는 받은 편지함이나 아카이브에 메시지가 하나도 없는데도 사이드바와 /my/messages 페이지에서 여전히 표시되는 오래된 그룹들이 여러 개 있습니다.
이 오래된 주제를 찾았지만, 제 환경에서는 작동하지 않는 해결책만 나와 있습니다: Messaging: Group inboxes and archives show even after all messages deleted
다른 아이디어가 있을까요?
이 오래된 그룹들에 대해.. 그룹을 편집해서 "이 그룹에 메시지를 보낼 수 있는 사람?"을 "없음"으로 변경하면 되는지 궁금합니다.
아니면, 이 오래된 그룹들은 여전히 그룹 메일박스가 필요한 건가요?
늦게 답변드려 죄송합니다. 하지만 모든 그룹의 “이 그룹에 메시지를 보낼 수 있는 사용자” 설정이 "없음"으로 되어 있습니다.
확인해 볼 다른 부분이 있을까요?
확실히 버그인 것 같습니다. nobody로 설정되어 있다면, 제 생각에는 그룹 메일박스가 표시되지 않아야 합니다.
우회적인 해결책으로, #customization:theme-component를 사용하여 그룹을 클래스로 추가하고, 각 그룹 클래스를 nobody로 설정된 그룹 메일박스에 display: none을 적용하는 방법이 있을 것입니다. 그룹 클래스를 사용하라고 한 이유는, CSS로 일반적 으로 숨기면 moderatators의 그룹 메일박스까지 함께 숨겨질 수 있다고 생각하기 때문입니다.
그 오래된 그룹들에 이전에 메시지가 있었던 건가요? 제 개인 사이트에는 메시지 하나만 있는 그룹이 있는데, 사이드바에 받은 편지함이 표시됩니다. 방금 그 메시지를 삭제했는데도 그룹 받은 편지함은 여전히 표시되고 있습니다.
삭제된 메시지는 더 이상 받은 편지함에 표시되지 않습니다. 관리자로서 저에게도 보이지 않습니다. 브라우저 히스토리를 통해 해당 메시지로 돌아가 봤더니, 삭제된 메시지로 남아 있는 것을 확인할 수 있었습니다. 그룹을 삭제하려고 시도했지만 허락되지 않았습니다. 메시지를 복원한 후 그룹을 삭제했습니다. 그리고 확실하게 하기 위해 메시지를 다시 삭제했습니다.
그러나 받은 편지함은 여전히 표시되고 있습니다. 그래서 그 그룹 받은 편지함에 다른 삭제된 메시지가 아직 남아 있을 것이라고 추정합니다.
네, 제 생각에는 여기에 버그가 있습니다. 그룹 받은 편지함의 유일한 메시지가 삭제된 경우, 사이드바에 그룹 받은 편지함이 표시되지 않아야 합니다.
현재 제가 생각하기에 유일한 해결책은 그룹을 삭제하고 다시 만드는 것입니다.
데이터 탐색기를 사용하여 그룹 받은 편지함 내 삭제된 메시지의 게시글 ID를 가져와 제 가설을 확인하고, 해당 게시글을 살펴보는 것도 흥미로울 것입니다.
이후 데이터베이스 일관성 작업을 실행하셨나요? 그 작업이 실행되면 받은 편지함이 더 이상 표시되지 않을 것 같습니다.
좋은 지적입니다! 저한테는 효과가 있었어요.
수정: OP의 링크된 주제가 저에게 도움이 됩니다. @alehandrof 님은 어떤가요? 결국 문제가 해결되었나요?
데이터베이스 정합성 작업을 실행했지만 여전히 받은편지함이 남아 있습니다. 사이트의 관리자 사용자이므로 이것이 영향을 줄 수 있을지 모르겠습니다. 하지만 모든 받은편지함(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
)
제 경우에는 그렇지 않아요. ![]()
수신함이 표시될 때만 주제(topic)를 표시해야 합니다.
수신함이 비어 있음에도 이 현상이 발생하는 방법을 이미 찾았습니다:
해당 그룹으로 전송된 메시지가 공개 주제로 전환된 경우입니다.
즉:
이 경우 위의 데이터 탐색기 쿼리가 해당 주제를 반환합니다