질문/조언질답게시판
Extra Form
PHP PHP 8.1
CMS Rhymix 2.x

쪽지, 댓글, 대댓글 등 알림센터에서 기본으로 지원하는 알림의 경우 유저가 유저 설정에서 알림여부를 변경할 수 있습니다.

 

다만, 외부 모듈에서 알림센터의 _insertNotify 을 통하여 알림을 전송하는경우

 

유저는 마이페이지 > 유저 설정에서 해당 설정을 변경할 수 없는것 같습니다.

 

혹시 제가 코드를 잘못 작성해서 그런가 하여

 

BJ람보님의 experience 모듈을 참고하여 

 

모듈 설치 및 업데이트시 알림센터lite 모듈의 커스텀 리스트에 알림 타입을 설치하도록 추가하였음에도 불구하고

 

모듈 관리자 페이지가 아닌, 유저 개인의 설정 페이지에서는 해당 알림 설정을 할 수 없는것 같습니다.

 

별도의 방법이 있을까요?!

  • profile
    커스텀알림으로 만들어지는 알림의 경우 따로 유저가 설정을 부여할 수 없습니다.

    현재 유저설정으로 받을 수 있는 알림의 종류는 기본적으로 알림센터에서 제공해주는 옵션들만 지원이 가능합니다.

    추후 알림센터에 커스텀알림도 유저설정에 설정할 수 있는지 확인해봐야겠네요..
  • profile profile
    댓글 감사드립니다!

    다만, user_config를 통해 설정이 불가능할경우

    푸시알림 발송 코드(sendPushMessage($args))에서 user_config 설정 여부를 체크하기 때문에, 커스텀 알림의 경우
    모듈 관리자 페이지에서 푸시알림에 Y를 체크하더라도

    user_config 의 null 로 인해서 푸시알림이 발송되지 않는것 같습니다 ㅠㅠ

    if($config->user_notify_setting == 'Y')
    {
    $target_member_config = NcenterliteModel::getUserConfig($args->member_srl);
    if($target_member_config && isset($target_member_config->{$args->config_type}) && !in_array('push', $target_member_config->{$args->config_type}))
    {
    return;
    }
    }

    혹시 임시 조치 방법이 있을까요? ㅠㅠ
  • profile profile

    위의 코드를 보면 사용자 설정의 전체 또는 일부가 null일 경우 isset에 걸려서 두 번째 조건문이 거짓이 되므로 리턴되지 않고 그대로 진행할 것 같은데요. 물론 $args->config_type에 무엇이 들어 있는지, 그리고 그 타입에 해당하는 사용자 설정값이 어떻게 저장되어 있는지에 따라 다양한 변수가 있으니 둘 다 찍어보시기를 바랍니다.

    기본 제공되지 않는 커스텀 타입을 임의로 추가해서 사용하는 방식은 예전에 알림센터에서 custom이라는 타입을 별도로 제공하지 않던 시절에 제공하던 기능인데, 새로 추가된 기능에서는 제대로 지원되지 않을 수 있으니 가능하면 기본 제공되는 custom 타입을 사용하시기 바랍니다.

    그리고 _insertNotify()를 직접 호출하지 말고 sendNotification()을 사용해 보세요. 함수명이나 변수명이 언더바(_)로 시작하는 것은 내부 전용이라는 뜻이므로 외부에서 호출하지 않는 것이 좋습니다. 게다가 _insertNotify()는 sendNotification()과 달리 $args로 넘겨줘야 하는 값이 상당히 많기 때문에, 커스텀 타입과 관련된 내용을 어떻게 넘기는지에 따라 오작동할 가능성도 높습니다.

  • profile profile
    감사합니다! 참고하겠습니다 ㅎㅎ
    혼자서 모듈을 만들려다 보니까 어려운게 많네요