diff --git a/common/lang/en.php b/common/lang/en.php
index aa8d20759..f41acca3a 100644
--- a/common/lang/en.php
+++ b/common/lang/en.php
@@ -250,6 +250,7 @@ $lang->msg_crypto_not_available = 'OpenSSL extension is not installed.';
$lang->comment_to_be_approved = 'Your comment must be approved by admin before being published.';
$lang->success_registed = 'Registered successfully.';
$lang->success_declared = 'Reported successfully.';
+$lang->success_declared_cancel = 'The report successfully canceled.';
$lang->success_updated = 'Updated successfully.';
$lang->success_deleted = 'Deleted successfully.';
$lang->success_declare_canceled = 'Your report has been canceled.';
@@ -273,6 +274,7 @@ $lang->failed_voted_canceled = 'You cannot cancel an upvote that you did\'t make
$lang->failed_blamed = 'No permission to downvote.';
$lang->failed_blamed_canceled = 'You cannot cancel a downvote that you did\'t make.';
$lang->failed_declared = 'No permission to Report.';
+$lang->failed_declared_cancel = 'You cannot cancel the report.';
$lang->fail_to_delete_have_children = 'Cannot delete the article with comments.';
$lang->confirm_submit = 'Are you sure you want to submit?';
$lang->confirm_logout = 'Are you sure you want to sign out?';
diff --git a/common/lang/ko.php b/common/lang/ko.php
index d536cca5f..bed1ca5ad 100644
--- a/common/lang/ko.php
+++ b/common/lang/ko.php
@@ -250,6 +250,7 @@ $lang->msg_crypto_not_available = 'openssl 확장모듈이 설치되어 있지
$lang->comment_to_be_approved = '관리자의 확인이 필요한 댓글입니다.';
$lang->success_registed = '등록했습니다.';
$lang->success_declared = '신고했습니다.';
+$lang->success_declared_cancel = '신고를 취소 했습니다.';
$lang->success_updated = '수정했습니다.';
$lang->success_deleted = '삭제했습니다.';
$lang->success_declare_canceled = '신고가 취소되었습니다.';
@@ -273,6 +274,7 @@ $lang->failed_voted_canceled = '추천한 적이 없으므로 취소할 수 없
$lang->failed_blamed = '비추천할 수 없습니다.';
$lang->failed_blamed_canceled = '비추천한 적이 없으므로 취소할 수 없습니다.';
$lang->failed_declared = '신고할 수 없습니다.';
+$lang->failed_declared_cancel = '신고를 취소할 수 없습니다.';
$lang->fail_to_delete_have_children = '댓글이 있어서 삭제할 수 없습니다.';
$lang->confirm_submit = '등록하시겠습니까?';
$lang->confirm_logout = '로그아웃하시겠습니까?';
diff --git a/modules/document/conf/module.xml b/modules/document/conf/module.xml
index daa47a554..9ae70f820 100644
--- a/modules/document/conf/module.xml
+++ b/modules/document/conf/module.xml
@@ -19,6 +19,7 @@
%s
', $oDocument->getPermanentUrl(), $oDocument->getTitleText()); + foreach ($message_targets as $target_member_srl => $val) + { + $oCommunicationController->sendMessage($this->user->member_srl, $target_member_srl, $message_title, $message_content, false); + } + } + + $oDB->commit(); + + $trigger_obj->declared_count = $declared_count - 1; + ModuleHandler::triggerCall('document.declaredDocumentCancel', 'after', $trigger_obj); + + $_SESSION['declared_document'][$document_srl] = false; + + $this->setMessage('success_declared_cancel'); + } + /** * Increase the number of comments in the document * Update modified date, modifier, and order with increasing comment count diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 2b2f9b796..80fb4383a 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -506,6 +506,48 @@ class documentItem extends BaseObject return $_SESSION['voted_document'][$this->document_srl] = false; } + /** + * 게시글에 신고한 이력이 있는지 검사 + * @return bool|int + */ + function getDeclared() + { + if(!$this->isExists()) + { + return false; + } + + $logged_info = Context::get('logged_info'); + if(!$logged_info->member_srl) + { + return false; + } + + if(isset($_SESSION['declared_document'][$this->document_srl])) + { + return $_SESSION['declared_document'][$this->document_srl]; + } + + $args = new stdClass(); + if($logged_info->member_srl) + { + $args->member_srl = $logged_info->member_srl; + } + else + { + $args->ipaddress = \RX_CLIENT_IP; + } + $args->document_srl = $this->document_srl; + $output = executeQuery('document.getDocumentDeclaredLogInfo', $args); + $declaredCount = intval($output->data->count); + if($declaredCount > 0) + { + return $_SESSION['declared_document'][$this->document_srl] = $declaredCount; + } + + return $_SESSION['declared_document'][$this->document_srl] = false; + } + function getTitle($cut_size = 0, $tail = '...') { if(!$this->isExists()) diff --git a/modules/document/lang/en.php b/modules/document/lang/en.php index d301a4946..c624f5015 100644 --- a/modules/document/lang/en.php +++ b/modules/document/lang/en.php @@ -98,6 +98,7 @@ $lang->original_date = 'Original date'; $lang->declared_count = 'Report count'; $lang->latest_declared_date = 'Last reported date'; $lang->declared_message_title = 'A post has been reported.'; +$lang->declared_cancel_message_title = 'Cancel the reported a post.'; $lang->declaring_user = 'Reporter'; $lang->improper_document_declare_reason = 'Reason'; $lang->improper_document_reasons['advertisement'] = 'Advertisements that do not fit the topics or themes.'; diff --git a/modules/document/lang/ko.php b/modules/document/lang/ko.php index 2de3727dc..d6967ac0b 100644 --- a/modules/document/lang/ko.php +++ b/modules/document/lang/ko.php @@ -98,6 +98,7 @@ $lang->original_date = '작성 날짜'; $lang->declared_count = '신고 수'; $lang->latest_declared_date = '최근 신고 날짜'; $lang->declared_message_title = '신고가 접수되었습니다.'; +$lang->declared_cancel_message_title = '신고가 취소되었습니다.'; $lang->declaring_user = '신고자'; $lang->improper_document_declare_reason = '신고 이유'; $lang->improper_document_reasons['advertisement'] = '주제나 흐름에 맞지 않는 광고 글입니다.'; diff --git a/modules/document/queries/deleteDeclaredDocument.xml b/modules/document/queries/deleteDeclaredDocument.xml new file mode 100644 index 000000000..8f63fb3f4 --- /dev/null +++ b/modules/document/queries/deleteDeclaredDocument.xml @@ -0,0 +1,8 @@ +