From d2bbe769d4a10d25310933ad23b776f60a454afd Mon Sep 17 00:00:00 2001 From: BJRambo Date: Wed, 13 Mar 2019 15:47:30 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EB=8C=93=EA=B8=80=EC=97=90=20=EA=B2=8C?= =?UTF-8?q?=EC=8B=9C=EA=B8=80=20=EC=9E=91=EC=84=B1=EC=9E=90=EA=B0=80=20?= =?UTF-8?q?=EB=8C=93=EA=B8=80=EC=9D=84=20=EB=82=A8=EA=B8=B8=EA=B2=BD?= =?UTF-8?q?=EC=9A=B0=20=EB=8C=93=EA=B8=80=EC=9D=84=20=EB=82=A8=EA=B8=B4=20?= =?UTF-8?q?=EB=AA=A8=EB=93=A0=20=ED=9A=8C=EC=9B=90=EC=97=90=EA=B2=8C=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ncenterlite/lang/ko.php | 4 +- modules/ncenterlite/ncenterlite.class.php | 1 + .../ncenterlite/ncenterlite.controller.php | 50 +++++++++++++++++-- modules/ncenterlite/ncenterlite.model.php | 4 ++ modules/ncenterlite/tpl/config.html | 7 +++ 5 files changed, 62 insertions(+), 4 deletions(-) diff --git a/modules/ncenterlite/lang/ko.php b/modules/ncenterlite/lang/ko.php index 302b35c33..8323efe28 100644 --- a/modules/ncenterlite/lang/ko.php +++ b/modules/ncenterlite/lang/ko.php @@ -38,6 +38,7 @@ $lang->ncenterlite_vote_noti = '추천 알림'; $lang->ncenterlite_activate = '사용'; $lang->ncenterlite_inactivate = '사용 안함'; $lang->ncenterlite_userconfig_about_warning = '주의! 당신은 관리자 권한으로 다른 사용자의 설정창에 접속하였습니다.'; +$lang->ncenterlite_comment_all = '모든 댓글 작성자에게 알림'; $lang->ncenterlite_article = '%1$s님이 "%2$s"라고 글을 남겼습니다.'; $lang->ncenterlite_board = '%1$s님이 "%2$s" 게시판에 "%3$s"라고 글을 남겼습니다.'; $lang->ncenterlite_commented = '%1$s님이 회원님의 %2$s에 "%3$s"라고 댓글을 남겼습니다.'; @@ -51,6 +52,7 @@ $lang->ncenterlite_vote = '%s님이 회원님의 "%s"ncenterlite_vote_anonymous = '회원님의 "%s" %s이 추천되었습니다.'; $lang->ncenterlite_admin_content_message = '%1$s님이 "%2$s" 게시판에 "%3$s"라고 글을 남겼습니다.'; $lang->ncenterlite_insert_member_message = '%s회원가입을 환영합니다!!'; +$lang->ncenterlite_insert_comment_all_message = '게시글 작성자 %s님이 "%2$s"게시글에 댓글을 남겼습니다.'; $lang->ncenterlite_content_image = '(이미지)'; $lang->ncenterlite_content_empty = '(내용 없음)'; $lang->ncenterlite_ago = '전'; @@ -133,7 +135,7 @@ $lang->about_mention_suffix_always_cut = '\'알림센터님\'이라는 회원과 $lang->mention_limit = '멘션 갯수 제한'; $lang->about_mention_limit = '서버 과부하와 스팸을 방지하기 위해 한 글에서 지나치게 많은 회원들을 호출하지 못하도록 합니다.'; $lang->ncenterlite_msg_setting_error = '설정에 오류가 있습니다. 다시 설정해 주세요.'; -$lang->ncenterlite_use_help = '회원들에게 전송할 알림을 선택할 수 있습니다.'; +$lang->ncenterlite_use_help = '회원들에게 전송할 알림을 선택할 수 있습니다.
모든 댓글 작성자에게 알림 기능은 게시글의 작성자가 댓글을 남길경우 게시글을 작성한 작성자를 제외하고 해당 글의 모든 댓글 작성자들에게 알림을 전송합니다.'; $lang->ncenterlite_dont_use_push = '푸시 알림은 현재 지원중이 아닙니다.'; $lang->member_phone_variable = '회원전화번호 변수'; $lang->member_phone_variable_about = '회원전화번호 변수를 선택합니다. 회원전화번호 변수가 1개일 경우 설치시 자동으로 설정이 저장됩니다. 이 경우 설정을 할 필요가 없어서 설정을 선택할 수 없습니다.'; diff --git a/modules/ncenterlite/ncenterlite.class.php b/modules/ncenterlite/ncenterlite.class.php index f622030b0..a0e23e66d 100644 --- a/modules/ncenterlite/ncenterlite.class.php +++ b/modules/ncenterlite/ncenterlite.class.php @@ -3,6 +3,7 @@ class ncenterlite extends ModuleObject { var $_TYPE_DOCUMENT = 'D'; // 댓글 var $_TYPE_COMMENT = 'C'; // 댓글의 댓글 + var $_TYPE_COMMENT_ALL = 'G'; var $_TYPE_ADMIN_COMMENT = 'A'; // 어드민 댓글 알림 var $_TYPE_MENTION = 'M'; // 멘션 var $_TYPE_MESSAGE = 'E'; // 쪽지 mEssage diff --git a/modules/ncenterlite/ncenterlite.controller.php b/modules/ncenterlite/ncenterlite.controller.php index abf04890f..664b7c60b 100644 --- a/modules/ncenterlite/ncenterlite.controller.php +++ b/modules/ncenterlite/ncenterlite.controller.php @@ -172,6 +172,53 @@ class ncenterliteController extends ncenterlite // 익명 노티 체크 $is_anonymous = $this->_isAnonymous($this->_TYPE_COMMENT, $obj); + $oDocumentModel = getModel('document'); + $oDocument = $oDocumentModel->getDocument($document_srl); + + if(isset($config->use['comment_all']) && $obj->member_srl == $oDocument->get('member_srl')) + { + $document_member_srl = $oDocument->get('member_srl'); + $comment_list = $oDocument->getComments(); + $comment_member_srls = array(); + foreach ($comment_list as $key => $value) + { + if($value->member_srl == $document_member_srl) + { + continue; + } + + if($comment_member_srls[$value->member_srl] === true) + { + continue; + } + $comment_member_srls[$value->member_srl] = true; + } + + foreach ($comment_member_srls as $comment_member_srl => $value) + { + $args = new stdClass(); + $args->config_type = 'comment_all'; + $args->member_srl = $comment_member_srl; + $args->target_p_srl = $obj->comment_srl; + $args->srl = $obj->document_srl; + $args->target_srl = $obj->comment_srl; + $args->type = $this->_TYPE_COMMENT; + $args->target_type = $this->_TYPE_COMMENT_ALL; + $args->target_url = getNotEncodedUrl('', 'document_srl', $document_srl, '_comment_srl', $comment_srl) . '#comment_' . $comment_srl; + $args->target_summary = cut_str(trim(utf8_normalize_spaces(strip_tags($oDocument->get('title')))), 50) ?: (strpos($content, 'target_nick_name = $obj->nick_name; + $args->target_email_address = $obj->email_address; + $args->regdate = date('YmdHis'); + $args->target_browser = $module_info->browser_title; + $args->notify = $this->_getNotifyId($args); + $output = $this->_insertNotify($args, $is_anonymous); + if(!$output->toBool()) + { + return $output; + } + } + } + $obj->admin_comment_notify = false; $admin_list = $oNcenterliteModel->getMemberAdmins(); @@ -277,9 +324,6 @@ class ncenterliteController extends ncenterlite // 대댓글이 아니고, 게시글의 댓글을 남길 경우 if(!$parent_srl || ($parent_srl && isset($config->use['comment_comment']))) { - $oDocumentModel = getModel('document'); - $oDocument = $oDocumentModel->getDocument($document_srl); - $member_srl = $oDocument->get('member_srl'); if(is_array($admin_list) && in_array(abs($member_srl), $admin_list) && isset($config->use['admin_content']) && $obj->admin_comment_notify == true) diff --git a/modules/ncenterlite/ncenterlite.model.php b/modules/ncenterlite/ncenterlite.model.php index 0729eb72a..46dfdcb6b 100644 --- a/modules/ncenterlite/ncenterlite.model.php +++ b/modules/ncenterlite/ncenterlite.model.php @@ -567,6 +567,10 @@ class ncenterliteModel extends ncenterlite case 'I': $str = sprintf(lang('ncenterlite_insert_member_message'), $notification->target_nick_name); break; + + case 'G': + $str = sprintf(lang('ncenterlite_insert_comment_all_message'), $notification->target_nick_name, $notification->target_summary); + break; // Other. default: diff --git a/modules/ncenterlite/tpl/config.html b/modules/ncenterlite/tpl/config.html index 1595f1d7c..69a88feb5 100644 --- a/modules/ncenterlite/tpl/config.html +++ b/modules/ncenterlite/tpl/config.html @@ -30,6 +30,13 @@ + +
+ + + + +
From 347efc4f5657fd8ac136c8a230d0490260b2ba92 Mon Sep 17 00:00:00 2001 From: BJRambo Date: Wed, 13 Mar 2019 16:25:40 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EB=8C=80=EB=8C=93=EA=B8=80=EC=9D=BC=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=EC=97=90=EB=A7=8C=20=EC=95=8C=EB=A6=BC?= =?UTF-8?q?=EC=9D=84=20=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=EA=B3=A0=EC=B9=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ncenterlite/ncenterlite.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ncenterlite/ncenterlite.controller.php b/modules/ncenterlite/ncenterlite.controller.php index 664b7c60b..73d4b5c72 100644 --- a/modules/ncenterlite/ncenterlite.controller.php +++ b/modules/ncenterlite/ncenterlite.controller.php @@ -175,7 +175,7 @@ class ncenterliteController extends ncenterlite $oDocumentModel = getModel('document'); $oDocument = $oDocumentModel->getDocument($document_srl); - if(isset($config->use['comment_all']) && $obj->member_srl == $oDocument->get('member_srl')) + if(isset($config->use['comment_all']) && $obj->member_srl == $oDocument->get('member_srl') && !$obj->parent_srl) { $document_member_srl = $oDocument->get('member_srl'); $comment_list = $oDocument->getComments(); From d0ba49b233a103f70c4ea0dc7a2e2da3d2799bee Mon Sep 17 00:00:00 2001 From: BJRambo Date: Fri, 22 Mar 2019 11:36:20 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=A2=80=20=EB=8D=94=20=ED=9A=A8=EC=9C=A8?= =?UTF-8?q?=EC=A0=81=EC=9C=BC=EB=A1=9C=20=EC=95=8C=EB=A6=BC=EC=9D=84=20?= =?UTF-8?q?=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ncenterlite/ncenterlite.controller.php | 25 +++++-------------- .../queries/getOtherCommentByMemberSrl.xml | 17 +++++++++++++ 2 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml diff --git a/modules/ncenterlite/ncenterlite.controller.php b/modules/ncenterlite/ncenterlite.controller.php index 73d4b5c72..c0b04c5ea 100644 --- a/modules/ncenterlite/ncenterlite.controller.php +++ b/modules/ncenterlite/ncenterlite.controller.php @@ -177,28 +177,15 @@ class ncenterliteController extends ncenterlite if(isset($config->use['comment_all']) && $obj->member_srl == $oDocument->get('member_srl') && !$obj->parent_srl) { - $document_member_srl = $oDocument->get('member_srl'); - $comment_list = $oDocument->getComments(); - $comment_member_srls = array(); - foreach ($comment_list as $key => $value) - { - if($value->member_srl == $document_member_srl) - { - continue; - } - - if($comment_member_srls[$value->member_srl] === true) - { - continue; - } - $comment_member_srls[$value->member_srl] = true; - } - - foreach ($comment_member_srls as $comment_member_srl => $value) + $comment_args = new stdClass(); + $comment_args->member_srl = $obj->member_srl; + $comment_args->document_srl = $obj->document_srl; + $other_comment = executeQuery('ncenterlite.getOtherCommentByMemberSrl', $comment_args); + foreach ($other_comment->data as $value) { $args = new stdClass(); $args->config_type = 'comment_all'; - $args->member_srl = $comment_member_srl; + $args->member_srl = $value->member_srl; $args->target_p_srl = $obj->comment_srl; $args->srl = $obj->document_srl; $args->target_srl = $obj->comment_srl; diff --git a/modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml b/modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml new file mode 100644 index 000000000..c671f5802 --- /dev/null +++ b/modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + From f0b1f785c165abef57bbf5bf952d6b99aba5244b Mon Sep 17 00:00:00 2001 From: BJRambo Date: Fri, 22 Mar 2019 12:08:17 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EB=8C=93=EA=B8=80=20=EC=9E=91=EC=84=B1?= =?UTF-8?q?=EC=9E=90=20=EC=95=8C=EB=A6=BC=20=EC=84=A4=EC=A0=95=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EB=A7=8C=EB=93=A4=EA=B3=A0=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=EB=B3=84=EB=A1=9C=20=EC=84=A0=ED=83=9D=ED=95=98?= =?UTF-8?q?=EC=97=AC=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ncenterlite/conf/module.xml | 1 + modules/ncenterlite/lang/ko.php | 4 +- .../ncenterlite.admin.controller.php | 15 +++++++ .../ncenterlite/ncenterlite.admin.view.php | 12 ++++++ .../ncenterlite/ncenterlite.controller.php | 2 +- modules/ncenterlite/ncenterlite.model.php | 2 +- modules/ncenterlite/tpl/config.html | 7 ---- modules/ncenterlite/tpl/header.html | 1 + modules/ncenterlite/tpl/othercomment.html | 42 +++++++++++++++++++ 9 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 modules/ncenterlite/tpl/othercomment.html diff --git a/modules/ncenterlite/conf/module.xml b/modules/ncenterlite/conf/module.xml index df246147a..f56580f36 100644 --- a/modules/ncenterlite/conf/module.xml +++ b/modules/ncenterlite/conf/module.xml @@ -19,6 +19,7 @@ + diff --git a/modules/ncenterlite/lang/ko.php b/modules/ncenterlite/lang/ko.php index 8323efe28..70f88adff 100644 --- a/modules/ncenterlite/lang/ko.php +++ b/modules/ncenterlite/lang/ko.php @@ -39,6 +39,9 @@ $lang->ncenterlite_activate = '사용'; $lang->ncenterlite_inactivate = '사용 안함'; $lang->ncenterlite_userconfig_about_warning = '주의! 당신은 관리자 권한으로 다른 사용자의 설정창에 접속하였습니다.'; $lang->ncenterlite_comment_all = '모든 댓글 작성자에게 알림'; +$lang->ncenterlite_comment_all_setting = '댓글 작성자 알림 설정'; +$lang->ncenterlite_comment_all_select_mid = '댓글 작성자 알림 사용 모듈'; +$lang->ncenterlite_about_comment_all_select_mid = '댓글 작성자 알림을 사용하실 모듈을 선택하세요. 모두 선택 해제시 기능이 작동하지 않습니다.'; $lang->ncenterlite_article = '%1$s님이 "%2$s"라고 글을 남겼습니다.'; $lang->ncenterlite_board = '%1$s님이 "%2$s" 게시판에 "%3$s"라고 글을 남겼습니다.'; $lang->ncenterlite_commented = '%1$s님이 회원님의 %2$s에 "%3$s"라고 댓글을 남겼습니다.'; @@ -52,7 +55,6 @@ $lang->ncenterlite_vote = '%s님이 회원님의 "%s"ncenterlite_vote_anonymous = '회원님의 "%s" %s이 추천되었습니다.'; $lang->ncenterlite_admin_content_message = '%1$s님이 "%2$s" 게시판에 "%3$s"라고 글을 남겼습니다.'; $lang->ncenterlite_insert_member_message = '%s회원가입을 환영합니다!!'; -$lang->ncenterlite_insert_comment_all_message = '게시글 작성자 %s님이 "%2$s"게시글에 댓글을 남겼습니다.'; $lang->ncenterlite_content_image = '(이미지)'; $lang->ncenterlite_content_empty = '(내용 없음)'; $lang->ncenterlite_ago = '전'; diff --git a/modules/ncenterlite/ncenterlite.admin.controller.php b/modules/ncenterlite/ncenterlite.admin.controller.php index 13a706035..c38056768 100644 --- a/modules/ncenterlite/ncenterlite.admin.controller.php +++ b/modules/ncenterlite/ncenterlite.admin.controller.php @@ -31,6 +31,8 @@ class ncenterliteAdminController extends ncenterlite 'variable_name', 'user_notify_setting', 'anonymous_voter', + 'comment_all', + 'comment_all_notify_module_srls', ); foreach($config_vars as $val) @@ -77,6 +79,19 @@ class ncenterliteAdminController extends ncenterlite $config->admin_notify_module_srls = array(); } } + + if($obj->disp_act == 'dispNcenterliteAdminOtherComment') + { + if(!$obj->comment_all) + { + $config->comment_all = 'N'; + } + if(!$obj->comment_all_notify_module_srls) + { + $config->comment_all_notify_module_srls = array(); + } + } + $output = $oModuleController->insertModuleConfig('ncenterlite', $config); if(!$output->toBool()) { diff --git a/modules/ncenterlite/ncenterlite.admin.view.php b/modules/ncenterlite/ncenterlite.admin.view.php index b601d2eae..3f159e6cb 100644 --- a/modules/ncenterlite/ncenterlite.admin.view.php +++ b/modules/ncenterlite/ncenterlite.admin.view.php @@ -41,6 +41,18 @@ class ncenterliteAdminView extends ncenterlite Context::set('mid_list', $mid_list); Context::set('config', $config); } + + function dispNcenterliteAdminOtherComment() + { + $oModuleModel = getModel('module'); + $oNcenterliteModel = getModel('ncenterlite'); + $config = $oNcenterliteModel->getConfig(); + + $mid_list = $oModuleModel->getMidList(null, array('module_srl', 'mid', 'browser_title', 'module')); + + Context::set('mid_list', $mid_list); + Context::set('config', $config); + } function dispNcenterliteAdminSkinsetting() { diff --git a/modules/ncenterlite/ncenterlite.controller.php b/modules/ncenterlite/ncenterlite.controller.php index c0b04c5ea..fef6b5751 100644 --- a/modules/ncenterlite/ncenterlite.controller.php +++ b/modules/ncenterlite/ncenterlite.controller.php @@ -175,7 +175,7 @@ class ncenterliteController extends ncenterlite $oDocumentModel = getModel('document'); $oDocument = $oDocumentModel->getDocument($document_srl); - if(isset($config->use['comment_all']) && $obj->member_srl == $oDocument->get('member_srl') && !$obj->parent_srl) + if($config->comment_all == 'Y' && $obj->member_srl == $oDocument->get('member_srl') && !$obj->parent_srl && (is_array($config->comment_all_notify_module_srls) && in_array($module_info->module_srl, $config->comment_all_notify_module_srls))) { $comment_args = new stdClass(); $comment_args->member_srl = $obj->member_srl; diff --git a/modules/ncenterlite/ncenterlite.model.php b/modules/ncenterlite/ncenterlite.model.php index 46dfdcb6b..df3c06fc6 100644 --- a/modules/ncenterlite/ncenterlite.model.php +++ b/modules/ncenterlite/ncenterlite.model.php @@ -569,7 +569,7 @@ class ncenterliteModel extends ncenterlite break; case 'G': - $str = sprintf(lang('ncenterlite_insert_comment_all_message'), $notification->target_nick_name, $notification->target_summary); + $str = sprintf(lang('ncenterlite_commented'), $notification->target_nick_name, $type, $notification->target_summary); break; // Other. diff --git a/modules/ncenterlite/tpl/config.html b/modules/ncenterlite/tpl/config.html index 69a88feb5..1595f1d7c 100644 --- a/modules/ncenterlite/tpl/config.html +++ b/modules/ncenterlite/tpl/config.html @@ -30,13 +30,6 @@ - -
- - - - -
diff --git a/modules/ncenterlite/tpl/header.html b/modules/ncenterlite/tpl/header.html index ec62d3f05..a560c0a3e 100644 --- a/modules/ncenterlite/tpl/header.html +++ b/modules/ncenterlite/tpl/header.html @@ -6,6 +6,7 @@
  • {$lang->ncenterlite_basic_settings}
  • {$lang->ncenterlite_advenced_config}
  • +
  • {$lang->ncenterlite_comment_all_setting}
  • {$lang->ncenterlite_mid_use}
  • {$lang->ncenterlite_skin_settings}
  • {$lang->ncenterlite_test}
  • diff --git a/modules/ncenterlite/tpl/othercomment.html b/modules/ncenterlite/tpl/othercomment.html new file mode 100644 index 000000000..567748528 --- /dev/null +++ b/modules/ncenterlite/tpl/othercomment.html @@ -0,0 +1,42 @@ + + + + + +
    + + + + +
    +
    + +
    + + +

    {$lang->ncenterlite_use_help}

    +
    +
    +
    + +
    +

    {$lang->ncenterlite_about_comment_all_select_mid}

    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + From 24fc7ceba2e87fe03edae4a5cba5396afdad38ca Mon Sep 17 00:00:00 2001 From: BJRambo Date: Fri, 22 Mar 2019 13:10:47 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=9E=98=EB=AA=BB=EB=90=9C=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=20=EC=95=84=EC=9D=B4=EB=94=94=EB=A5=BC=20=EA=B3=A0?= =?UTF-8?q?=EC=B9=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml b/modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml index c671f5802..d3e390126 100644 --- a/modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml +++ b/modules/ncenterlite/queries/getOtherCommentByMemberSrl.xml @@ -1,4 +1,4 @@ - +