Don't display duplicate notify to the administrator.

This commit is contained in:
BJRambo 2016-04-12 19:03:57 +09:00
parent b233d44cfa
commit b986f9b56b
2 changed files with 56 additions and 29 deletions

View file

@ -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;

View file

@ -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)