diff --git a/modules/ncenterlite/lang/ko.php b/modules/ncenterlite/lang/ko.php index ceb5ec31d..989d36403 100644 --- a/modules/ncenterlite/lang/ko.php +++ b/modules/ncenterlite/lang/ko.php @@ -12,8 +12,10 @@ $lang->ncenterlite_addressee = '받는 사람'; $lang->ncenterlite_noti_contents = '내용'; $lang->ncenterlite_notify_setting = '알림센터 사용할 페이지'; $lang->ncenterlite_about_notify_setting = '선택한 페이지에서 알림센터를 표시하지 않습니다.'; -$lang->ncenterlite_notify_comment = '댓글 전체 알림 사용할 페이지'; -$lang->ncenterlite_about_notify_comment = '선택한 게시판에서는 댓글의 모든 알림을 관리자가 받을 수 있습니다.'; +$lang->ncenterlite_notify_mid_all = '전체 알림 사용할 페이지'; +$lang->ncenterlite_about_mid_all = '선택한 게시판에서는 모든 알림을 관리자가 받을 수 있습니다.'; +$lang->ncenterlite_admin_content = '관리자 알림'; +$lang->about_admin_content = '\'관리자 알림\'은 선택한 페이지에 대해서 관리자에게 새글과 댓글을 알려줍니다. 이 설정은 알림센터 사용설정에서 사용할 페이지를 선택해야합니다.'; $lang->ncenterlite_read = '읽음 확인'; $lang->ncenterlite_read_y = '읽음'; $lang->ncenterlite_read_n = '읽지 않음'; @@ -35,12 +37,13 @@ $lang->ncenterlite_userconfig_about_warning = '주의! 당신은 관리자 권 $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"라고 댓글을 남겼습니다.'; -$lang->ncenterlite_commented_board = '%1$s님이 게시판 "%2$s"에 "%3$s"라고 댓글을 남겼습니다.'; +$lang->ncenterlite_commented_board = '%1$s님이 "%2$s"게시판에 "%3$s"라고 댓글을 남겼습니다.'; $lang->ncenterlite_mentioned = '%s님이 "%s" %s에서 회원님을 언급하였습니다.'; $lang->ncenterlite_message_string = '%d개의 읽지 않은 메시지가 있습니다.'; $lang->ncenterlite_message_mention = '%s님께서 "%s"라고 메세지를 보내셨습니다.'; $lang->ncenterlite_test_noti = '%s님! 스킨 테스트 알림을 완료했습니다.'; $lang->ncenterlite_vote = '%s님이 "%s" 글을 추천하였습니다.'; +$lang->ncenterlite_admin_content_message = '%1$s님이 "%2$s"게시판에 "%3$s"라고 글을 남겼습니다.'; $lang->ncenterlite_ago = '전'; $lang->ncenterlite_date['0'] = '년'; $lang->ncenterlite_date['1'] = '개월'; diff --git a/modules/ncenterlite/ncenterlite.admin.controller.php b/modules/ncenterlite/ncenterlite.admin.controller.php index b3e49c04e..5c5b57c61 100644 --- a/modules/ncenterlite/ncenterlite.admin.controller.php +++ b/modules/ncenterlite/ncenterlite.admin.controller.php @@ -16,7 +16,7 @@ class ncenterliteAdminController extends ncenterlite 'document_notify', 'hide_module_srls', 'mention_format', - 'admin_comment_module_srls', + 'admin_notify_module_srls', 'skin', 'mskin', 'mcolorset', @@ -50,9 +50,9 @@ class ncenterliteAdminController extends ncenterlite { $config->hide_module_srls = array(); } - if($obj->disp_act == 'dispNcenterliteAdminSeletedmid' && !$obj->admin_comment_module_srls) + if($obj->disp_act == 'dispNcenterliteAdminSeletedmid' && !$obj->admin_notify_module_srls) { - $config->admin_comment_module_srls = array(); + $config->admin_notify_module_srls = array(); } } $output = $oModuleController->updateModuleConfig('ncenterlite', $config); diff --git a/modules/ncenterlite/ncenterlite.class.php b/modules/ncenterlite/ncenterlite.class.php index ccf8564a4..ccf755e2e 100644 --- a/modules/ncenterlite/ncenterlite.class.php +++ b/modules/ncenterlite/ncenterlite.class.php @@ -28,7 +28,8 @@ class ncenterlite extends ModuleObject var $_TYPE_MESSAGE = 'E'; // 쪽지 mEssage var $_TYPE_DOCUMENTS = 'P'; // 글 작성 알림 var $_TYPE_VOTED = 'V'; // 추천글 안내 알림 - var $_TYPE_TEST = 'T'; + var $_TYPE_TEST = 'T'; // Test Notify create. + var $_TYPE_ADMIN_DOCUMENT = 'B'; // Admin Document Alert var $_TYPE_CUSTOM = 'U'; //Updated alert(uses type table) var $triggers = array( diff --git a/modules/ncenterlite/ncenterlite.controller.php b/modules/ncenterlite/ncenterlite.controller.php index ed0018379..185318f04 100644 --- a/modules/ncenterlite/ncenterlite.controller.php +++ b/modules/ncenterlite/ncenterlite.controller.php @@ -81,15 +81,52 @@ class ncenterliteController extends ncenterlite $content = strip_tags($obj->title . ' ' . $obj->content); $mention_targets = $this->_getMentionTarget($content); - if(!$mention_targets || !count($mention_targets) || !isset($config->use[mention])) - { - return new Object(); - } $document_srl = $obj->document_srl; $module_info = $oModuleModel->getModuleInfoByDocumentSrl($document_srl); $is_anonymous = $this->_isAnonymous($this->_TYPE_DOCUMENT, $obj); + + $admin_list = $oNcenterliteModel->getMemberAdmins(); + $admins_list = $admin_list->data; + $logged_info = Context::get('logged_info'); + + if(isset($config->use['admin_content'])) + { + foreach($admins_list as $admins) + { + if($logged_info->member_srl == $admins->member_srl) + { + continue; + } + if(is_array($config->admin_notify_module_srls) && in_array($module_info->module_srl, $config->admin_notify_module_srls)) + { + $args = new stdClass(); + $args->member_srl = $admins->member_srl; + $args->srl = $obj->document_srl; + $args->target_p_srl = $obj->document_srl; + $args->target_srl = $obj->document_srl; + $args->type = $this->_TYPE_DOCUMENT; + $args->target_type = $this->_TYPE_ADMIN_DOCUMENT; + $args->target_url = getNotEncodedFullUrl('', 'document_srl', $obj->document_srl); + $args->target_summary = cut_str(strip_tags($obj->title), 50); + $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; + } + } + } + } + + if(!$mention_targets || !count($mention_targets) || !isset($config->use['mention'])) + { + return new Object(); + } + // 맨션 알림일경우 맨션알림 시작. if($mention_targets) { @@ -154,7 +191,7 @@ class ncenterliteController extends ncenterlite $is_anonymous = $this->_isAnonymous($this->_TYPE_COMMENT, $obj); // check use the mention option. - if(isset($config->use[mention])) + if(isset($config->use['mention'])) { $mention_targets = $this->_getMentionTarget(strip_tags($obj->content)); // !TODO 공용 메소드로 분리 @@ -186,33 +223,35 @@ class ncenterliteController extends ncenterlite } } - if(!isset($config->use[comment])) + if(!isset($config->use['comment'])) { return new Object(); } $admin_list = $oNcenterliteModel->getMemberAdmins(); $admins_list = $admin_list->data; - - foreach($admins_list as $admins) + if(isset($config->use['admin_content'])) { - if(is_array($config->admin_comment_module_srls) && in_array($module_info->module_srl, $config->admin_comment_module_srls)) + 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(is_array($config->admin_notify_module_srls) && in_array($module_info->module_srl, $config->admin_notify_module_srls)) + { + $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); + } } } // 대댓글 @@ -246,7 +285,7 @@ class ncenterliteController extends ncenterlite } } // 대댓글이 아니고, 게시글의 댓글을 남길 경우 - if(!$parent_srl || ($parent_srl && isset($config->use[comment_comment]))) + if(!$parent_srl || ($parent_srl && isset($config->use['comment_comment']))) { $oDocumentModel = getModel('document'); $oDocument = $oDocumentModel->getDocument($document_srl); @@ -290,7 +329,7 @@ class ncenterliteController extends ncenterlite return new Object(); } - if(!isset($config->use[message])) + if(!isset($config->use['message'])) { return new Object(); } @@ -322,7 +361,7 @@ class ncenterliteController extends ncenterlite $oNcenterliteModel = getModel('ncenterlite'); $config = $oNcenterliteModel->getConfig(); - if(!isset($config->use[vote])) + if(!isset($config->use['vote'])) { return new Object(); } diff --git a/modules/ncenterlite/ncenterlite.model.php b/modules/ncenterlite/ncenterlite.model.php index 5c1c01c8a..35234564e 100644 --- a/modules/ncenterlite/ncenterlite.model.php +++ b/modules/ncenterlite/ncenterlite.model.php @@ -190,6 +190,9 @@ class ncenterliteModel extends ncenterlite case 'V': $str = sprintf($lang->ncenterlite_vote, $target_member, $v->target_summary); break; + case 'B': + $str = sprintf($lang->ncenterlite_admin_content_message, $target_member, $v->target_browser, $v->target_summary); + break; } if($v->type=='U') diff --git a/modules/ncenterlite/tpl/config.html b/modules/ncenterlite/tpl/config.html index 08819df08..33d4a0a47 100644 --- a/modules/ncenterlite/tpl/config.html +++ b/modules/ncenterlite/tpl/config.html @@ -11,11 +11,13 @@
{$lang->about_admin_content}
{$lang->ncenterlite_about_notify_comment}
+{$lang->ncenterlite_about_mid_all}