라이믹스에서는 회원에게 필요한 알림을 알림센터로 알려주고 있습니다. 쪽지 또한 도착 사실을 알림센터의 알림으로 발생되게 해 줄수 있으나 알림이 많아 알림을 무시하는 회원에게는 쪽지 도착 사실을 알릴 수 없는 문제가 발생합니다.
알림 자체를 읽지 않으려는 사람에게 쪽지도 비슷하게 취급하면 되지 라는 생각에 개인적으로은 약간 다른 생각을 가지고 있습니다.
회원에게 쪽지로 알리는 것 중 운영자가 굉장히 중요한 사실을 고지해 줄 수도 있고 시스템에서 쪽지로 회원이 열람해서 조치해야 할 내용이 전달 될 수도 있습니다. (누군가 로그인 시도를 해서 실패했다는 정보의 쪽지 등...)
개인적으로는 새로운 쪽지가 도착했는데 읽지 않는다면 사이트의 중요한 페이지 몇군데를 접속하지 못하면서 쪽지를 읽어야 한다는 메시지를 보여주는 애드온을 사용합니다. 자료실에 공개한 애드온입니다.
https://rxtip.kr/download/368
사실 쪽지 정도는 필수로 열람해야만 서비스 이용이 가능하도록 하는 강제적인 조치가 지나치지는 않다고 생각하는 운영자 입니다만 그렇지 않은 운영자도 있을 것 입니다. 사용은 각자 판단에 따라서 결정하면 되겠죠.
여기서 다루고자 하는 것은 새로운 쪽지가 도착했다는 사실 다시 말하면 읽지 않은 쪽지가 있다는 사실을 알림센터 알림 외 별도의 구분된 알림으로 알려줄 필요가 있어 알림을 모두 지우는 회원에게도 쪽지 도착 사실은 알려줄 수 있게 레이아웃 또는 로그인정보 위젯 스킨 등에 적용하는 것 입니다.
제가 운영하는 커뮤니티의 한곳에 PC의 경우 위와 같이 별도로 읽지 않은 쪽지를 확실히 알 수 있도록 위와 같이 처리해 주고 있습니다.
새로운쪽지 : 1
에서 쪽지숫자 1이 깜빡이게 css에서 처리해 놓아서 놓칠 수가 없습니다. 별도로 읽지 않은 쪽지를 쿼리해서 가져온 데이터라 알림센터 알림을 모두 지우더라더도 저 알림은 지워지지 않습니다. (쪽지를 읽어야 지워집니다.)
모바일의 경우는 로그인을 하면 이렇게 명시적으로 읽지않은 쪽지가 있습니다. 라는 메시지가 발생하며 회원정보를 열람하는 곳에 알림 카운트가 발생됩니다.
저 my 아이콘을 누르고 회원정보 등을 열람하는 곳으로 들어가면
이렇게 쪽지 항목에 읽지 않은 쪽지의 카운트가 표시가 되고 있어 눌러서 쪽지를 열람하러 갈수 있죠.
위와 같이 필요한 곳(레이아웃 또는 로그인정보 위젯 등)에 새로운쪽지수를 쿼리해서 결과의 데이터로 표시해 주면됩니다.
XE시절부터 사용하는 것이니 라이믹스 XE 구분없이 사용 가능합니다.
{@ $logged_info = Context::get('logged_info'); $args = new stdClass(); $args->receiver_srl = $logged_info->member_srl; $output = executeQuery('communication.getNewMessage', $args); }
위와 같이 로그인 한 회원의 새쪽지 정보를 쿼리하는 코드를 작성해 줍니다.
라이믹스의 경우 읽지 않은 쪽지수만 조회하는 쿼리(getNewMessageCount)가 추가된 것을 확인하고 이것을 사용하는 라이믹스에서 사용 가능한 코드를 하단에 추가했습니다. 라이믹스의 경우는 쪽지를 전부 불러오는 것이 아닌 쪽지 숫자만 가져오는 아래 추가한 코드를 사용해주세요.
그리고 결과를 가지고 무언가 표시를 해주거나 하고 싶은 곳에
<!--@if($output->page_navigation->total_count>0)-->
쪽지가 있다고 뭔가 알려주고 싶은 코드 작성
<!--@end-->
위와 같이 읽지 않은 쪽지 갯수가 0보다 큰 경우 (한개 이상인 경우) 무언가 출력되도록 해주면 됩니다.
<!--@if($output->page_navigation->total_count>0)-->
<li class="mcount">message : <a href="{getUrl('act','dispMemberMessages','member_srl',$logged_info->member_srl)}"><span>새로운 쪽지</span><span class="count">{$output->page_navigation->total_count}</span></a></li>
<!--@end-->
위와 같이 작성하면
새로운쪽지 : 쪽지수
이렇게 출력이 되면서 클릭하면 쪽지 열람페이지로 이동되겠죠.
이렇게 처리하는 것도 귀찮다면 그냥 제가 위에 언급한 애드온만 사용하셔도 됩니다.
개인적으로는 정보도 제공하고 애드온으로 필수적으로 쪽지를 열람해야만 하는 운영정책 모두 사용하고 있습니다.
* 라이믹스 전용 쿼리 *
글을 작성하고 라이믹스 코드를 확인해 보니 읽지않은 쪽지수 쿼리를 별도로 제공하는 것이 추가되어 쪽지 숫자만 확인해서 처리하는 코드를 추가합니다. 라이믹스 사용자의 경우는 이 코드 사용을 추천합니다.
{@ $logged_info = Context::get('logged_info'); $args = new stdClass(); $args->receiver_srl = $logged_info->member_srl; $output = executeQuery('communication.getNewMessageCount', $args); }
그리고 결과를 가지고 무언가 표시를 해주거나 하고 싶은 곳에
<!--@if($output->data->count>0)-->
쪽지가 있다고 뭔가 알려주고 싶은 코드 작성
<!--@end-->
위와 같이 읽지 않은 쪽지 갯수가 0보다 큰 경우 (한개 이상인 경우) 무언가 출력되도록 해주면 됩니다.
<!--@if($output->data->count>0)-->
<li class="mcount">message : <a href="{getUrl('act','dispMemberMessages','member_srl',$logged_info->member_srl)}"><span>새로운 쪽지</span><span class="count">{$output->data->count}</span></a></li>
<!--@end-->
위와 같이 작성하면
새로운쪽지 : 쪽지수
이렇게 출력이 되면서 클릭하면 쪽지 열람페이지로 이동되겠죠.