쪽지를 보냈다가 아차 싶을 때가 있지 않습니까?
내용을 조금 더 다듬어서 보낼 걸, 하는 생각이 들 때도 있구요.
그럴 때 전송을 취소하고 싶은 마음이 들 수 있는데요.
가장 간편한 접근으로 보낸쪽지함에서 쪽지를 삭제하는 방법이 있습니다.
라고 쉽게 말하면 좋겠지만, 당연히 상대의 받은쪽지함에서는 쪽지가 삭제되지 않습니다.
생각해보면 당연한 건데, 한편으로는 아쉬운 마음이 들기도 합니다.
적어도 수신자가 쪽지를 아직 열어보지 않았을 경우에 한해서,
발신자가 쪽지를 삭제할 때,
수신자의 받은쪽지함에서도 쪽지가 삭제된다면 어떨까 싶으니까요.
즉, "전송 취소" 꼼수입니다.
참고로 저는 코어는 건드리지 말자는 주의입니다만, 애드온을 따로 만들거나 하지는 않을 생각이어서 팁 정도만 남겨봅니다.
communication 모듈의 일부를 수정하는 팁입니다.
https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/modules/communication/communication.controller.php#L303-L371
여기에 보면 쪽지를 삭제하는 함수가 있는데요.
이곳의 368행쯤에 다음과 같은 구문을 삽입해줍니다.
// 상대의 받은쪽지함에 쪽지가 남아 있고, 아직 읽지 않은 상태라면 else if ($related && $related->readed != 'Y') { $args = new stdClass(); $args->message_srl = $related->message_srl; $output = executeQuery('communication.deleteMessage', $args); if (!$output->toBool()) { return $output; } $args->srl = $related->message_srl; $output = executeQuery('ncenterlite.deleteNotifyBySrl', $args); if($output->toBool()) { return $output; } }
위와 같이 하면 알림센터에 가 있는 알림도 삭제돼서 발신자는 자신에게 쪽지가 전송됐었다는 사실을 전혀 알 수 없게 되는 거죠 :0
물론 좀 더 멋들어지게 한다면 '읽지않음' 상태일 때 '전송 취소' 버튼도 출력하고,
그걸 클릭하면 확인 경고창도 뜨고 그러면 좋을 것 같기는 한데,
코어 수정 팁을 깨작거린 마당에 다른 일까지 벌리기는 ... ;;;;
코어에 들어가면 좋은 기능이네요 :D