댓글에 게시글 작성자가 댓글을 남길경우 댓글을 남긴 모든 회원에게 알림

This commit is contained in:
BJRambo 2019-03-13 15:47:30 +09:00
parent b94105bc0c
commit d2bbe769d4
5 changed files with 62 additions and 4 deletions

View file

@ -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 = '<strong>%1$s</strong>님이 <strong>"%2$s"</strong>라고 글을 남겼습니다.';
$lang->ncenterlite_board = '<strong>%1$s</strong>님이 <strong>"%2$s"</strong> 게시판에 <strong>"%3$s"</strong>라고 글을 남겼습니다.';
$lang->ncenterlite_commented = '<strong>%1$s</strong>님이 회원님의 %2$s에 <strong>"%3$s"</strong>라고 댓글을 남겼습니다.';
@ -51,6 +52,7 @@ $lang->ncenterlite_vote = '<strong>%s</strong>님이 회원님의 <strong>"%s"</
$lang->ncenterlite_vote_anonymous = '회원님의 <strong>"%s"</strong> %s이 추천되었습니다.';
$lang->ncenterlite_admin_content_message = '<strong>%1$s</strong>님이 <strong>"%2$s"</strong> 게시판에 <strong>"%3$s"</strong>라고 글을 남겼습니다.';
$lang->ncenterlite_insert_member_message = '<strong>%s</strong>님 <strong>회원가입</strong>을 환영합니다!!';
$lang->ncenterlite_insert_comment_all_message = '게시글 작성자 <strong>%s</strong>님이 <strong>"%2$s"</strong>게시글에 댓글을 남겼습니다.';
$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 = '회원들에게 전송할 알림을 선택할 수 있습니다. <br /> 모든 댓글 작성자에게 알림 기능은 게시글의 작성자가 댓글을 남길경우 게시글을 작성한 작성자를 제외하고 해당 글의 <strong>모든 댓글 작성자</strong>들에게 알림을 전송합니다.';
$lang->ncenterlite_dont_use_push = '푸시 알림은 현재 지원중이 아닙니다.';
$lang->member_phone_variable = '회원전화번호 변수';
$lang->member_phone_variable_about = '회원전화번호 변수를 선택합니다. 회원전화번호 변수가 1개일 경우 설치시 자동으로 설정이 저장됩니다. 이 경우 설정을 할 필요가 없어서 설정을 선택할 수 없습니다.';

View file

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

View file

@ -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, '<img') !== false ? lang('ncenterlite_content_image') : lang('ncenterlite_content_empty'));
$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())
{
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)

View file

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

View file

@ -30,6 +30,13 @@
<label for="comment_comment_sms" class="x_inline" disabled="disabled"|cond="!$sms_available"><input type="checkbox" name="use[comment_comment][sms]" id="comment_comment_sms" value="1" disabled="disabled"|cond="!$sms_available" checked="checked"|cond="isset($config->use['comment_comment']['sms'])" /> {$lang->cmd_sms_notify}</label>
<label for="comment_comment_push" class="x_inline" disabled="disabled"|cond="!$push_available"><input type="checkbox" name="use[comment_comment][push]" id="comment_comment_push" value="1" disabled="disabled"|cond="!$push_available" checked="checked"|cond="isset($config->use['comment_comment']['push'])" /> {$lang->cmd_push_notify}</label>
</div>
<label class="x_control-label">{$lang->ncenterlite_comment_all}</label>
<div class="x_controls">
<label for="comment_all_web" class="x_inline"><input type="checkbox" name="use[comment_all][web]" id="comment_all_web" value="1" checked="checked"|cond="isset($config->use['comment_all']['web'])" /> {$lang->cmd_web_notify}</label>
<label for="comment_all_mail" class="x_inline"><input type="checkbox" name="use[comment_all][mail]" id="comment_all_mail" value="1" checked="checked"|cond="isset($config->use['comment_all']['mail'])" /> {$lang->cmd_mail_notify}</label>
<label for="comment_all_sms" class="x_inline" disabled="disabled"|cond="!$sms_available"><input type="checkbox" name="use[comment_all][sms]" id="comment_all_sms" value="1" disabled="disabled"|cond="!$sms_available" checked="checked"|cond="isset($config->use['comment_all']['sms'])" /> {$lang->cmd_sms_notify}</label>
<label for="comment_all_push" class="x_inline" disabled="disabled"|cond="!$push_available"><input type="checkbox" name="use[comment_all][push]" id="comment_all_push" value="1" disabled="disabled"|cond="!$push_available" checked="checked"|cond="isset($config->use['comment_all']['push'])" /> {$lang->cmd_push_notify}</label>
</div>
<label class="x_control-label">{$lang->ncenterlite_cmd_vote}</label>
<div class="x_controls">
<label for="vote_web" class="x_inline"><input type="checkbox" name="use[vote][web]" id="vote_web" value="1" checked="checked"|cond="isset($config->use['vote']['web'])" /> {$lang->cmd_web_notify}</label>