From b986f9b56b25a298c666cf23bdd87591c8a4624c Mon Sep 17 00:00:00 2001 From: BJRambo Date: Tue, 12 Apr 2016 19:03:57 +0900 Subject: [PATCH] Don't display duplicate notify to the administrator. --- .../ncenterlite/ncenterlite.controller.php | 75 ++++++++++++------- modules/ncenterlite/ncenterlite.model.php | 10 ++- 2 files changed, 56 insertions(+), 29 deletions(-) diff --git a/modules/ncenterlite/ncenterlite.controller.php b/modules/ncenterlite/ncenterlite.controller.php index c75d2d951..73bf11dfd 100644 --- a/modules/ncenterlite/ncenterlite.controller.php +++ b/modules/ncenterlite/ncenterlite.controller.php @@ -92,10 +92,10 @@ class ncenterliteController extends ncenterlite if(isset($config->use['admin_content']) && is_array($config->admin_notify_module_srls) && in_array($module_info->module_srl, $config->admin_notify_module_srls)) { $admin_list = $oNcenterliteModel->getMemberAdmins(); - $admins_list = $admin_list->data; - foreach($admins_list as $admins) + + foreach($admin_list as $admins) { - if($logged_info->member_srl == $admins->member_srl) + if($logged_info->member_srl == $admins) { continue; } @@ -188,6 +188,39 @@ class ncenterliteController extends ncenterlite // 익명 노티 체크 $is_anonymous = $this->_isAnonymous($this->_TYPE_COMMENT, $obj); + $admin_comment_notify = false; + $admin_list = $oNcenterliteModel->getMemberAdmins(); + + if(isset($config->use['admin_content']) && is_array($config->admin_notify_module_srls) && in_array($module_info->module_srl, $config->admin_notify_module_srls)) + { + foreach($admin_list as $admins) + { + if($logged_info->member_srl == $admins) + { + continue; + } + $args = new stdClass(); + $args->member_srl = $admins; + $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_ADMIN_COMMENT; + $args->target_url = getNotEncodedFullUrl('', 'document_srl', $document_srl, '_comment_srl', $comment_srl) . '#comment_' . $comment_srl; + $args->target_summary = cut_str(strip_tags($content), 50); + $args->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()) + { + $admin_comment_notify = true; + } + } + } + // check use the mention option. if(isset($config->use['mention'])) { @@ -201,6 +234,10 @@ class ncenterliteController extends ncenterlite { continue; } + if(is_array($admin_list) && in_array($mention_member_srl, $admin_list) && isset($config->use['admin_content']) && $admin_comment_notify == true) + { + continue; + } $args = new stdClass(); $args->member_srl = $mention_member_srl; @@ -226,29 +263,6 @@ class ncenterliteController extends ncenterlite return new Object(); } - if(isset($config->use['admin_content']) && is_array($config->admin_notify_module_srls) && in_array($module_info->module_srl, $config->admin_notify_module_srls)) - { - $admin_list = $oNcenterliteModel->getMemberAdmins(); - $admins_list = $admin_list->data; - foreach($admins_list as $admins) - { - $args = new stdClass(); - $args->member_srl = $admins->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_ADMIN_COMMENT; - $args->target_url = getNotEncodedFullUrl('', 'document_srl', $document_srl, '_comment_srl', $comment_srl) . '#comment_' . $comment_srl; - $args->target_summary = cut_str(strip_tags($content), 50); - $args->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($parent_srl) { @@ -257,6 +271,10 @@ class ncenterliteController extends ncenterlite $member_srl = $oComment->member_srl; $comment_member_config = $oNcenterliteModel->getMemberConfig($member_srl); $parent_member_config = $comment_member_config->data; + if(is_array($admin_list) && in_array(abs($member_srl), $admin_list) && isset($config->use['admin_content']) && $admin_comment_notify == true) + { + return new Object(); + } // !TODO 공용 메소드로 분리 if(!in_array(abs($member_srl), $notify_member_srl) && (!$logged_info || ($member_srl != 0 && abs($member_srl) != $logged_info->member_srl)) && $parent_member_config->comment_notify != 'N') @@ -286,6 +304,11 @@ class ncenterliteController extends ncenterlite $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']) && $admin_comment_notify == true) + { + return new Object(); + } $comment_member_config = $oNcenterliteModel->getMemberConfig($member_srl); $document_comment_member_config = $comment_member_config->data; diff --git a/modules/ncenterlite/ncenterlite.model.php b/modules/ncenterlite/ncenterlite.model.php index 35234564e..86ada0376 100644 --- a/modules/ncenterlite/ncenterlite.model.php +++ b/modules/ncenterlite/ncenterlite.model.php @@ -309,9 +309,13 @@ class ncenterliteModel extends ncenterlite $args = new stdClass(); $args->is_admin = 'Y'; $output = executeQueryArray('ncenterlite.getMemberAdmins', $args); - if(!$output->data) $output->data = array(); - - return $output; + $member_srl = array(); + foreach($output->data as $member) + { + $member_srl[] = $member->member_srl; + } + + return $member_srl; } function _getNewCount($member_srl=null)