Support user config of notification types, fixes #994

코어에서 지원하는 알림 종류 및 알림 수신 방법이 늘어남에 따라,
관리자가 설정한 범위 내에서 회원들이 알림 수신 방법을 선택할 수 있도록 합니다.
기존에는 수신 여부만 선택할 수 있었으나 이제 더 세부적인 설정이 가능합니다.
예를 들어 웹 알림과 푸시알림은 받고, 메일 알림과 문자 알림은 끌 수 있습니다.

이 기능을 지원하기 위해 ncenterlite_user_set 테이블 스키마를 대폭 조정합니다.
기존 설정은 가능하면 그대로 유지하려고 노력하였습니다.
This commit is contained in:
Kijin Sung 2020-12-17 23:41:31 +09:00
parent 3032784ca7
commit c52187a8f2
14 changed files with 435 additions and 531 deletions

View file

@ -2,15 +2,18 @@
$lang->ncenterlite = 'Notification Center Lite';
$lang->ncenterlite_install_version = 'Installed version';
$lang->ncenterlite_advenced_config = 'Advenced Setting';
$lang->ncenterlite_document = 'document';
$lang->ncenterlite_document = 'post';
$lang->ncenterlite_comment = 'comment';
$lang->ncenterlite_mention = 'Mention';
$lang->ncenterlite_cmd_vote = 'Vote';
$lang->ncenterlite_cmd_scrap = 'Scrap';
$lang->ncenterlite_comment_comment = 'Reply to Comment';
$lang->ncenterlite_admin_content = 'Admin Notification';
$lang->ncenterlite_custom = 'Other';
$lang->ncenterlite_type_message = 'message';
$lang->ncenterlite_type_document = 'New document';
$lang->ncenterlite_type_comment = 'New comment';
$lang->ncenterlite_type_comment_comment = 'Reply on comment';
$lang->ncenterlite_type_mention = 'Mention';
$lang->ncenterlite_type_vote = 'Vote';
$lang->ncenterlite_type_scrap = 'Scrap';
$lang->ncenterlite_type_message = 'Direct message';
$lang->ncenterlite_type_test = 'Test notification';
$lang->ncenterlite_type_admin_content = 'Admin notification';
$lang->ncenterlite_type_custom = 'Other';
$lang->ncenterlite_sender = 'Sender';
$lang->ncenterlite_addressee = 'Recipient';
$lang->ncenterlite_noti_contents = 'Contents';
@ -23,14 +26,14 @@ $lang->ncenterlite_my_settings = 'My notification settings';
$lang->ncenterlite_user_settings = 'User notification settings';
$lang->ncenterlite_userconfig_title = 'Notification Center Settings of %s';
$lang->ncenterlite_userconfig_about = 'Personalized settings of notification center can be controlled by you.';
$lang->ncenterlite_comment_noti = 'Comment notice';
$lang->ncenterlite_comment_noti_about = 'Get notice of a comment after someone replies to my documents or comments.';
$lang->ncenterlite_mention_noti = 'New Direct Message';
$lang->ncenterlite_mention_noti_about = 'Get notice of a mention after someone mention me on documents and/or comments. ( @Nickname to mention )';
$lang->ncenterlite_message_noti = 'New Message';
$lang->ncenterlite_message_noti_about = 'Get notice of a message after someone send the message to me.';
$lang->ncenterlite_comment_comment_noti = 'New Comment';
$lang->ncenterlite_vote_noti = 'New Upvote';
$lang->ncenterlite_comment_noti_about = 'Receive notifications for new comments on my posts.';
$lang->ncenterlite_comment_comment_noti_about = 'Receive notifications for replies to my comments.';
$lang->ncenterlite_mention_noti_about = 'Receive notifications for mentions (@%s).';
$lang->ncenterlite_message_noti_about = 'Receive notifications for direct messages.';
$lang->ncenterlite_vote_noti_about = 'Receive notifications when someone votes on my post or comment.';
$lang->ncenterlite_scrap_noti_about = 'Receive notifications when someone scraps my post.';
$lang->ncenterlite_admin_content_noti_about = 'Receive administrator notifications.';
$lang->ncenterlite_custom_noti_about = 'Receive all other notifications.';
$lang->ncenterlite_activate = 'Activate';
$lang->ncenterlite_inactivate = 'Inactivate';
$lang->ncenterlite_userconfig_about_warning = 'Watch out! You are controlling other user\'s settings via this page.';
@ -65,7 +68,6 @@ $lang->ncenterlite_not_have_message = 'You have no new notifications.';
$lang->ncenterlite_thisistest = '[*] This is a test notice.';
$lang->ncenterlite_delete_all = 'delete all';
$lang->ncenterlite_more = 'More';
$lang->ncenterlite_stop_login_required = 'Sign in to control your own notification settings.';
$lang->ncenterlite_stop_no_permission_other_user = 'You don\'t have the authority to read settings of other members.';
$lang->ncenterlite_stop_no_permission_other_user_settings = 'You don\'t have the authority to control settings of other members.';
$lang->ncenterlite_message_delete_notification_before = 'Notifications before %s are deleted.';
@ -125,6 +127,11 @@ $lang->anonymous_scrap = 'anonymous scrap';
$lang->about_anonymous_scrap = 'anonymize scrapper in scrap notification';
$lang->highlight_effect = 'highlight effect';
$lang->about_highlight_effect = 'it gives highlight effect to the comment when access the comment URL.';
$lang->fail_module_install = 'Failed to install module.';
$lang->cmd_web_notify = 'Web';
$lang->cmd_mail_notify = 'Email';
$lang->cmd_sms_notify = 'SMS';
$lang->cmd_push_notify = 'Push';
$lang->msg_denger_rhymix_user = '<strong>Warning!</strong> Rhymix includes notification center by default.<br />Please remove this XE-only module and reinstall the Rhymix native version.';
$lang->ncenterlite_content_type = 'Type of the contents';

View file

@ -4,12 +4,16 @@ $lang->ncenterlite_install_version = '설치된 버전';
$lang->ncenterlite_advenced_config = '고급 설정';
$lang->ncenterlite_document = '글';
$lang->ncenterlite_comment = '댓글';
$lang->ncenterlite_mention = '멘션';
$lang->ncenterlite_cmd_vote = '추천';
$lang->ncenterlite_cmd_scrap = '스크랩';
$lang->ncenterlite_comment_comment = '대댓글';
$lang->ncenterlite_type_message = '쪽지';
$lang->ncenterlite_type_test = '테스트';
$lang->ncenterlite_type_document = '글 알림';
$lang->ncenterlite_type_comment = '댓글 알림';
$lang->ncenterlite_type_comment_comment = '대댓글 알림';
$lang->ncenterlite_type_mention = '멘션 알림';
$lang->ncenterlite_type_vote = '추천 알림';
$lang->ncenterlite_type_scrap = '스크랩 알림';
$lang->ncenterlite_type_message = '쪽지 알림';
$lang->ncenterlite_type_test = '테스트 알림';
$lang->ncenterlite_type_admin_content = '관리자 알림';
$lang->ncenterlite_type_custom = '기타 알림';
$lang->ncenterlite_sender = '보낸 사람';
$lang->ncenterlite_addressee = '받는 사람';
$lang->ncenterlite_noti_contents = '내용';
@ -17,8 +21,6 @@ $lang->ncenterlite_notify_setting = '알림 미표시 페이지';
$lang->ncenterlite_about_notify_setting = '선택한 모듈에서는 알림을 표시하지 않습니다. 그리고 알림을 전송하지도 않습니다.';
$lang->ncenterlite_notify_mid_all = '관리자 알림 페이지';
$lang->ncenterlite_about_mid_all = '선택한 모듈에서는 모든 알림이 관리자에게도 전달됩니다.';
$lang->ncenterlite_admin_content = '관리자 알림';
$lang->ncenterlite_custom = '기타 알림';
$lang->ncenterlite_read = '읽음 확인';
$lang->ncenterlite_read_y = '읽음';
$lang->ncenterlite_read_n = '읽지 않음';
@ -29,18 +31,14 @@ $lang->ncenterlite_user_settings = '사용자 알림 설정';
$lang->ncenterlite_notify_settings = '알림 설정';
$lang->ncenterlite_userconfig_title = '%s님의 알림센터 설정';
$lang->ncenterlite_userconfig_about = '알림센터의 개인의 설정을 저장하도록 합니다.';
$lang->ncenterlite_comment_noti = '댓글 알림';
$lang->ncenterlite_comment_noti_about = '내 게시물에 댓글이 달릴 경우 알림을 받습니다.';
$lang->ncenterlite_mention_noti = '멘션 알림';
$lang->ncenterlite_mention_noti_about = '누군가 글, 혹은 댓글을 통해서 나를 멘션 했을 경우 알림을 받습니다. (멘션 방법 @닉네임 )';
$lang->ncenterlite_message_noti = '쪽지 알림';
$lang->ncenterlite_message_noti_about = '누군가에게 받은 쪽지를 알림을 받습니다.';
$lang->ncenterlite_comment_comment_noti = '대댓글 알림';
$lang->ncenterlite_comment_comment_noti_about = '내 댓글에 댓글이 달릴 경우 알림을 받습니다.';
$lang->ncenterlite_vote_noti = '추천 알림';
$lang->ncenterlite_vote_noti_about = '내 게시글, 혹은 댓글이 추천을 받았을 때 알림을 받습니다.';
$lang->ncenterlite_scrap_noti = '스크랩 알림';
$lang->ncenterlite_scrap_noti_about = '누군가 내 게시글을 스크랩 했을 경우 알림을 받습니다.';
$lang->ncenterlite_comment_noti_about = '내 글에 댓글이 달리면 알림을 받습니다.';
$lang->ncenterlite_comment_comment_noti_about = '내 댓글에 대댓글이 달리면 알림을 받습니다.';
$lang->ncenterlite_mention_noti_about = '누군가 글이나 댓글에서 나를 멘션(@%s)하면 알림을 받습니다.';
$lang->ncenterlite_message_noti_about = '새 쪽지가 도착하면 알림을 받습니다.';
$lang->ncenterlite_vote_noti_about = '내 글이나 댓글이 추천을 받으면 알림을 받습니다.';
$lang->ncenterlite_scrap_noti_about = '누군가 내 글을 스크랩하면 알림을 받습니다.';
$lang->ncenterlite_admin_content_noti_about = '관리자 알림을 받습니다.';
$lang->ncenterlite_custom_noti_about = '기타 알림을 받습니다.';
$lang->ncneterlite_block_individual = '개별 문서/댓글 알림 차단';
$lang->ncneterlite_block_individual_about = '개별적으로 문서/댓글을 차단할 수 있습니다.';
$lang->ncenterlite_activate = '사용';
@ -81,10 +79,9 @@ $lang->ncenterlite_not_have_message = '새 알림이 없습니다.';
$lang->ncenterlite_thisistest = '[*] 시험용 알림입니다';
$lang->ncenterlite_delete_all = '모두 삭제';
$lang->ncenterlite_more = '더보기';
$lang->ncenterlite_stop_login_required = '알림센터 설정을 하시려면 로그인 해주세요.';
$lang->ncenterlite_stop_no_permission_other_user = '다른 회원의 설정을 볼 권한이 없습니다.';
$lang->ncenterlite_stop_no_permission_other_user_settings = '다른 회원의 설정을 변경할 권한이 없습니다.';
$lang->ncenterlite_stop_no_permission_other_user_block_settings = '다른 회원의 차단 설정을 변경할 권한이 없습니다.';
$lang->ncenterlite_stop_no_permission_other_user_block_settings = '다른 회원의 설정을 변경할 권한이 없습니다.';
$lang->ncenterlite_message_delete_notification_before = '%s까지 알림 정보를 삭제했습니다.';
$lang->ncenterlite_message_delete_notification_all = '모든 알림을 삭제했습니다.';
$lang->ncenterlite_notice_list = '알림 목록';
@ -156,7 +153,8 @@ $lang->about_mention_suffix_always_cut = '\'알림센터님\'이라는 회원과
$lang->mention_limit = '멘션 갯수 제한';
$lang->about_mention_limit = '서버 과부하와 스팸을 방지하기 위해 한 글에서 지나치게 많은 회원들을 호출하지 못하도록 합니다.';
$lang->ncenterlite_msg_setting_error = '설정에 오류가 있습니다. 다시 설정해 주세요.';
$lang->ncenterlite_use_help = '회원들에게 전송할 알림을 선택할 수 있습니다. <br /> 모든 댓글 작성자에게 알림 기능은 게시글의 작성자가 댓글을 남길경우 게시글을 작성한 작성자를 제외하고 해당 글의 <strong>모든 댓글 작성자</strong>들에게 알림을 전송합니다.';
$lang->ncenterlite_use_help = '회원들에게 전송할 알림의 종류와 전달 방식을 선택할 수 있습니다.';
$lang->ncenterlite_use_othercomment_help = '글 작성자가 댓글을 남기면 해당 글에 댓글을 작성한 모든 사람에게 알림을 전송합니다.';
$lang->member_phone_variable = '회원 전화번호 변수';
$lang->member_phone_variable_about = '문자 알림 사용시 회원의 전화번호를 어디에서 불러올지 선택합니다. 회원정보의 전화번호 또는 확장변수를 선택할 수 있습니다.<br />전화번호 형태의 확장변수가 1개뿐인 경우 설치시 자동으로 설정이 저장됩니다.';
$lang->member_phone_builtin_field = '회원정보의 전화정보';
@ -166,7 +164,7 @@ $lang->anonymous_scrap = '스크랩 익명';
$lang->about_anonymous_scrap = '스크랩 알림시 스크랩한 사람을 익명으로 처리합니다.';
$lang->highlight_effect = '하이라이트 효과';
$lang->about_highlight_effect = '댓글 URL로 접근시 해당 댓글에 하이라이트 효과를 줍니다.';
$lang->fail_module_install = '모듈설치에 실패하였습니다.';
$lang->fail_module_install = '모듈 설치에 실패하였습니다.';
$lang->cmd_web_notify = '웹 알림';
$lang->cmd_mail_notify = '메일 알림';
$lang->cmd_sms_notify = '문자 알림';