diff --git a/modules/comment/comment.controller.php b/modules/comment/comment.controller.php
index 31a42fba7..bdbce865d 100644
--- a/modules/comment/comment.controller.php
+++ b/modules/comment/comment.controller.php
@@ -58,6 +58,12 @@ class CommentController extends Comment
}
}
}
+ $yeokka_member_srl = Rhymix\Modules\Yeokbox\Models\Config::getConfig()->yeokka_member_srl;
+ $logged_info = Context::get('logged_info');
+ if($logged_info->member_srl != $yeokka_member_srl && $oComment->getRegdateTime() < (time() - (86400 * 7)))
+ {
+ throw new Rhymix\Framework\Exception('작성 이후 7일 이상이 경과한 댓글은 추천할 수 없습니다.');
+ }
$point = 1;
$allow_same_ip = ($comment_config->allow_vote_from_same_ip ?? 'N') === 'Y';
diff --git a/modules/comment/comment.item.php b/modules/comment/comment.item.php
index 30508fc69..fd519466b 100644
--- a/modules/comment/comment.item.php
+++ b/modules/comment/comment.item.php
@@ -112,15 +112,15 @@ class CommentItem extends BaseObject
}
$logged_info = Context::get('logged_info');
- if (!$logged_info->member_srl)
+ if (!$logged_info || !$logged_info->member_srl)
{
return $this->grant_cache = false;
}
- if ($logged_info->is_admin == 'Y')
+ if ($logged_info && $logged_info->is_admin == 'Y')
{
return $this->grant_cache = true;
}
- if ($this->get('member_srl') && abs($this->get('member_srl')) == $logged_info->member_srl)
+ if ($logged_info && $this->get('member_srl') && abs($this->get('member_srl')) == $logged_info->member_srl)
{
return $this->grant_cache = true;
}
@@ -292,7 +292,7 @@ class CommentItem extends BaseObject
// return if the currently logged-in user is an author of the comment.
$logged_info = Context::get('logged_info');
- if($logged_info->member_srl == $this->get('member_srl'))
+ if($logged_info && $logged_info->member_srl && $logged_info->member_srl == abs($this->get('member_srl')))
{
return;
}
@@ -306,7 +306,7 @@ class CommentItem extends BaseObject
$title .= cut_str(strip_tags($content), 30, '...');
$content = sprintf('%s
from :
%s', $content, getFullUrl('', 'document_srl', $this->get('document_srl')), $this->get('comment_srl'), getFullUrl('', 'document_srl', $this->get('document_srl')));
$receiver_srl = $this->get('member_srl');
- $sender_member_srl = $logged_info->member_srl;
+ $sender_member_srl = ($logged_info && $logged_info->member_srl) ? $logged_info->member_srl : $this->get('member_srl');
// send a message
$oCommunicationController = getController('communication');
@@ -376,17 +376,24 @@ class CommentItem extends BaseObject
function getMyVote()
{
- if(!$this->comment_srl) return false;
- if(isset($_SESSION['voted_comment'][$this->comment_srl]))
+ if (!$this->comment_srl)
+ {
+ return false;
+ }
+
+ if (isset($_SESSION['voted_comment'][$this->comment_srl]))
{
return $_SESSION['voted_comment'][$this->comment_srl];
}
$logged_info = Context::get('logged_info');
- if(!$logged_info->member_srl) return false;
+ if (!$logged_info || !$logged_info->member_srl)
+ {
+ return false;
+ }
$args = new stdClass();
- if($logged_info->member_srl)
+ if ($logged_info && $logged_info->member_srl)
{
$args->member_srl = $logged_info->member_srl;
}
@@ -413,7 +420,7 @@ class CommentItem extends BaseObject
}
$logged_info = Context::get('logged_info');
- if (!$logged_info->member_srl)
+ if (!$logged_info || !$logged_info->member_srl)
{
return false;
}
@@ -424,7 +431,7 @@ class CommentItem extends BaseObject
}
$args = new stdClass();
- if ($logged_info->member_srl)
+ if ($logged_info && $logged_info->member_srl)
{
$args->member_srl = $logged_info->member_srl;
}
diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php
index 3ac2dd1e1..9ee84cbe0 100644
--- a/modules/comment/comment.model.php
+++ b/modules/comment/comment.model.php
@@ -113,7 +113,7 @@ class CommentModel extends Comment
$url = getUrl('', 'module', 'admin', 'act', 'dispCommentAdminList', 'search_target', 'ipaddress', 'search_keyword', $oComment->getIpAddress());
$oCommentController->addCommentPopupMenu($url, 'cmd_search_by_ipaddress', '', 'TraceByIpaddress');
- $url = sprintf("var params = new Array(); params['ipaddress_list']='%s'; exec_xml('spamfilter', 'procSpamfilterAdminInsertDeniedIP', params, completeCallModuleAction)", $oComment->getIpAddress());
+ $url = sprintf("var params = new Array(); params['ipaddress_list']='%s'; exec_json('spamfilter.procSpamfilterAdminInsertDeniedIP', params)", $oComment->getIpAddress());
$oCommentController->addCommentPopupMenu($url, 'cmd_add_ip_to_spamfilter', '', 'javascript');
}
}
diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php
index 0265a56ec..b2a645d6d 100644
--- a/modules/document/document.controller.php
+++ b/modules/document/document.controller.php
@@ -70,6 +70,12 @@ class DocumentController extends Document
}
}
}
+ $yeokka_member_srl = Rhymix\Modules\Yeokbox\Models\Config::getConfig()->yeokka_member_srl;
+ $logged_info = Context::get('logged_info');
+ if($logged_info->member_srl != $yeokka_member_srl && $oDocument->getRegdateTime() < (time() - (86400 * 7)))
+ {
+ throw new Rhymix\Framework\Exception('작성 이후 7일 이상이 경과한 글은 추천할 수 없습니다.');
+ }
$point = 1;
$allow_same_ip = ($document_config->allow_vote_from_same_ip ?? 'N') === 'Y';
@@ -902,7 +908,7 @@ class DocumentController extends Document
}
// Handle extra vars that support file upload.
- if ($extra_item->type === 'file' && is_array($value))
+ if ($extra_item->type === 'file' && $value)
{
$ev_output = $extra_item->uploadFile($value, $obj->document_srl, 'doc');
if (!$ev_output->toBool())
@@ -1300,16 +1306,20 @@ class DocumentController extends Document
if ($extra_item->type === 'file')
{
// New upload
- if (is_array($value) && isset($value['name']))
+ if (is_array($value) && isset($value['tmp_name']))
{
// Delete old file
if (isset($old_extra_vars[$idx]->value))
{
- $fc_output = FileController::getInstance()->deleteFile($old_extra_vars[$idx]->value);
- if (!$fc_output->toBool())
+ $old_file = FileModel::getFile($old_extra_vars[$idx]->value);
+ if ($old_file && $old_file->upload_target_srl == $obj->document_srl)
{
- $oDB->rollback();
- return $fc_output;
+ $fc_output = FileController::getInstance()->deleteFile($old_file->file_srl);
+ if (!$fc_output->toBool())
+ {
+ $oDB->rollback();
+ return $fc_output;
+ }
}
}
// Insert new file
@@ -1334,21 +1344,22 @@ class DocumentController extends Document
return $ev_output;
}
// Delete old file
- $fc_output = FileController::getInstance()->deleteFile($old_extra_vars[$idx]->value);
- if (!$fc_output->toBool())
+ $old_file = FileModel::getFile($old_extra_vars[$idx]->value);
+ if ($old_file && $old_file->upload_target_srl == $obj->document_srl)
{
- $oDB->rollback();
- return $fc_output;
+ $fc_output = FileController::getInstance()->deleteFile($old_file->file_srl);
+ if (!$fc_output->toBool())
+ {
+ $oDB->rollback();
+ return $fc_output;
+ }
}
}
}
// Leave current file unchanged
- elseif (!$value)
+ elseif (isset($old_extra_vars[$idx]->value))
{
- if (isset($old_extra_vars[$idx]->value))
- {
- $value = $old_extra_vars[$idx]->value;
- }
+ $value = $old_extra_vars[$idx]->value;
}
}
}
diff --git a/modules/document/document.item.php b/modules/document/document.item.php
index 0b5e5609e..d883363aa 100644
--- a/modules/document/document.item.php
+++ b/modules/document/document.item.php
@@ -201,11 +201,11 @@ class DocumentItem extends BaseObject
{
return $this->grant_cache = false;
}
- if ($logged_info->is_admin == 'Y')
+ if ($logged_info && $logged_info->is_admin == 'Y')
{
return $this->grant_cache = true;
}
- if ($this->get('member_srl') && abs($this->get('member_srl')) == $logged_info->member_srl)
+ if ($logged_info && $this->get('member_srl') && abs($this->get('member_srl')) == $logged_info->member_srl)
{
return $this->grant_cache = true;
}
@@ -411,7 +411,7 @@ class DocumentItem extends BaseObject
// Return if the currently logged-in user is an author
$logged_info = Context::get('logged_info');
- if($logged_info->member_srl == $this->get('member_srl'))
+ if($logged_info && $logged_info->member_srl && $logged_info->member_srl == abs($this->get('member_srl')))
{
return;
}
@@ -421,7 +421,7 @@ class DocumentItem extends BaseObject
$content = sprintf('%s
from :
%s',$content, getFullUrl('', 'document_srl', $this->document_srl), getFullUrl('', 'document_srl', $this->document_srl));
// Send a message
- $sender_member_srl = $logged_info->member_srl ?: $this->get('member_srl');
+ $sender_member_srl = ($logged_info && $logged_info->member_srl) ? $logged_info->member_srl : $this->get('member_srl');
getController('communication')->sendMessage($sender_member_srl, $this->get('member_srl'), $title, $content, false, null, false);
}
@@ -514,17 +514,17 @@ class DocumentItem extends BaseObject
}
$logged_info = Context::get('logged_info');
- if(!$logged_info->member_srl)
+ if (!$logged_info || !$logged_info->member_srl)
{
$module_info = ModuleModel::getModuleInfoByModuleSrl($this->get('module_srl'));
- if($module_info->non_login_vote !== 'Y')
+ if(!isset($module_info->non_login_vote) || $module_info->non_login_vote !== 'Y')
{
return false;
}
}
$args = new stdClass;
- if($logged_info->member_srl)
+ if ($logged_info && $logged_info->member_srl)
{
$args->member_srl = $logged_info->member_srl;
}
@@ -554,7 +554,7 @@ class DocumentItem extends BaseObject
}
$logged_info = Context::get('logged_info');
- if(!$logged_info->member_srl)
+ if(!$logged_info || !$logged_info->member_srl)
{
return false;
}
@@ -565,7 +565,7 @@ class DocumentItem extends BaseObject
}
$args = new stdClass();
- if($logged_info->member_srl)
+ if($logged_info && $logged_info->member_srl)
{
$args->member_srl = $logged_info->member_srl;
}
@@ -1027,7 +1027,7 @@ class DocumentItem extends BaseObject
// Cache the vote log for all comments.
$logged_info = Context::get('logged_info');
- if ($logged_info->member_srl)
+ if ($logged_info && $logged_info->member_srl)
{
$comment_srls = array();
foreach ($comment_list as $comment_srl => $comment)
@@ -1650,6 +1650,10 @@ class DocumentItem extends BaseObject
return ModuleModel::getModuleInfoByModuleSrl($this->get('module_srl'))->browser_title;
}
+ /**
+ * Get the title of the module to which the document belongs.
+ * @return string
+ */
function getBrowserTitle()
{
return $this->getModuleName();
diff --git a/modules/document/document.model.php b/modules/document/document.model.php
index 446a52fd3..2cbe383fa 100644
--- a/modules/document/document.model.php
+++ b/modules/document/document.model.php
@@ -111,6 +111,7 @@ class DocumentModel extends Document
foreach($GLOBALS['XE_EXTRA_KEYS'][$module_srl] as $idx => $key)
{
$document_extra_vars[$idx] = clone($key);
+ $document_extra_vars[$idx]->parent_srl = $document_srl;
// set variable value in user language
if(isset($document_extra_values[$idx][$user_lang_code]))
@@ -600,7 +601,7 @@ class DocumentModel extends Document
$url = getUrl('','module','admin','act','dispDocumentAdminList','search_target','ipaddress','search_keyword',$oDocument->getIpAddress());
$oDocumentController->addDocumentPopupMenu($url,'cmd_search_by_ipaddress',$icon_path,'TraceByIpaddress');
- $url = sprintf("var params = new Array(); params['ipaddress_list']='%s'; exec_xml('spamfilter', 'procSpamfilterAdminInsertDeniedIP', params, completeCallModuleAction)", $oDocument->getIpAddress());
+ $url = sprintf("var params = new Array(); params['ipaddress_list']='%s'; exec_json('spamfilter.procSpamfilterAdminInsertDeniedIP', params)", $oDocument->getIpAddress());
$oDocumentController->addDocumentPopupMenu($url,'cmd_add_ip_to_spamfilter','','javascript');
}
}
@@ -1430,6 +1431,10 @@ class DocumentModel extends Document
{
$args->s_voted_count = intval($searchOpt->s_voted_count);
}
+ if (isset($searchOpt->s_readed_count) && $searchOpt->s_readed_count > 0)
+ {
+ $args->s_readed_count = intval($searchOpt->s_readed_count);
+ }
// get directly module_srl by mid
if(isset($searchOpt->mid) && $searchOpt->mid)
@@ -1562,13 +1567,13 @@ class DocumentModel extends Document
if($searchOpt->isExtraVars)
{
$args->sort_eid = $args->sort_index;
- $args->sort_lang = Context::getLangType();
if ($searchOpt->isExtraVarsSortAsNumber ?? false)
{
$args->sort_index = 'extra_sort.sort_value';
}
else
{
+ $args->sort_lang = Context::getLangType();
$args->sort_index = 'extra_sort.value';
}
}
diff --git a/modules/document/lang/en.php b/modules/document/lang/en.php
index deec85dc6..82bfcd26b 100644
--- a/modules/document/lang/en.php
+++ b/modules/document/lang/en.php
@@ -122,13 +122,12 @@ $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.';
-$lang->improper_document_reasons['theme'] = 'Posts that do not fit the topics or themes.';
-$lang->improper_document_reasons['bad_word'] = 'Too much bad words.';
-$lang->improper_document_reasons['violence'] = 'Violence.';
-$lang->improper_document_reasons['racism'] = 'Racism.';
-$lang->improper_document_reasons['pornography'] = 'Pornography.';
-$lang->improper_document_reasons['privacy'] = 'Privacy issue.';
+$lang->improper_document_reasons['do_not_fight'] = '1. Do not fight';
+$lang->improper_document_reasons['sensitive_content'] = '2. Sensitive content';
+$lang->improper_document_reasons['spoiler'] = '3. Spoiler';
+$lang->improper_document_reasons['tas_export'] = '4. TAS export';
+$lang->improper_document_reasons['tas_swear'] = '5. TAS swear';
+$lang->improper_document_reasons['ad'] = '6. Advertisement';
$lang->improper_document_reasons['others'] = 'Others (Write your own)';
$lang->about_improper_document_declare = 'Write here why you report this article as an improper document.';
$lang->allow_vote_from_same_ip = 'Allow voting from same IP';
diff --git a/modules/document/lang/ko.php b/modules/document/lang/ko.php
index 31383ed95..746dc10a1 100644
--- a/modules/document/lang/ko.php
+++ b/modules/document/lang/ko.php
@@ -113,14 +113,13 @@ $lang->declared_message_title = '신고가 접수되었습니다.';
$lang->declared_cancel_message_title = '신고가 취소되었습니다.';
$lang->declaring_user = '신고자';
$lang->improper_document_declare_reason = '신고 이유';
-$lang->improper_document_reasons['advertisement'] = '주제나 흐름에 맞지 않는 광고 글입니다.';
-$lang->improper_document_reasons['theme'] = '주제에 맞지 않는 글입니다.';
-$lang->improper_document_reasons['bad_word'] = '과도한 욕설을 담고 있습니다.';
-$lang->improper_document_reasons['violence'] = '폭력적인 내용을 담고 있습니다.';
-$lang->improper_document_reasons['racism'] = '인종차별적인 내용을 담고 있습니다.';
-$lang->improper_document_reasons['pornography'] = '음란물을 포함하고 있습니다.';
-$lang->improper_document_reasons['privacy'] = '민감한 개인정보가 노출 되어있습니다.';
-$lang->improper_document_reasons['others'] = '기타(직접작성)';
+$lang->improper_document_reasons['do_not_fight'] = '1. 싸우지 마세요 위반';
+$lang->improper_document_reasons['sensitive_content'] = '2. 후방글에는 반드시 후방 주의를 달아주세요 위반';
+$lang->improper_document_reasons['spoiler'] = '3. 스포글에도 반드시 스포 주의 달아주세요 위반';
+$lang->improper_document_reasons['tas_export'] = '4. 타스 내수용 수출';
+$lang->improper_document_reasons['tas_swear'] = '5. 타스 비방/욕설';
+$lang->improper_document_reasons['ad'] = '6. 광고/스팸글';
+$lang->improper_document_reasons['others'] = '기타(직접 작성)';
$lang->about_improper_document_declare = '게시글을 신고하신 이유를 간단히 적어서 제출해주시면 관리자 검토 후 조치하겠습니다.';
$lang->allow_vote_from_same_ip = '동일 IP 추천 허용';
$lang->allow_vote_non_member = '비회원 추천 허용';
diff --git a/modules/document/lang/vi.php b/modules/document/lang/vi.php
index 7fb293d63..2ecdf86b6 100644
--- a/modules/document/lang/vi.php
+++ b/modules/document/lang/vi.php
@@ -71,12 +71,11 @@ $lang->declared_message_title = 'Đã tiếp nhận báo cáo.';
$lang->declared_cancel_message_title = 'Báo cáo đã bị hủy.';
$lang->declaring_user = 'Người báo';
$lang->improper_document_declare_reason = 'Lý do báo';
-$lang->improper_document_reasons['advertisement'] = 'Đây là bài viết quảng cáo không phù hợp với chủ đề hoặc nội dung.';
-$lang->improper_document_reasons['theme'] = 'Bài viết không hợp với chủ đề.';
-$lang->improper_document_reasons['bad_word'] = 'Có chứa những lời chửi thề.';
-$lang->improper_document_reasons['violence'] = 'Có nội dung bạo lực.';
-$lang->improper_document_reasons['racism'] = 'Có nội dung phân biệt chủng tộc.';
-$lang->improper_document_reasons['pornography'] = 'Có nội dung khiêu dâm.';
-$lang->improper_document_reasons['privacy'] = 'Thông tin cá nhân nhạy cảm được tiết lộ.';
+$lang->improper_document_reasons['do_not_fight'] = '1. Không gây gổ';
+$lang->improper_document_reasons['sensitive_content'] = '2. Nội dung nhạy cảm';
+$lang->improper_document_reasons['spoiler'] = '3. Tiết lộ nội dung';
+$lang->improper_document_reasons['tas_export'] = '4. Xuất khẩu TAS';
+$lang->improper_document_reasons['tas_swear'] = '5. Lời lẽ thô tục TAS';
+$lang->improper_document_reasons['ad'] = '6. Quảng cáo/Spam';
$lang->improper_document_reasons['others'] = 'Khác(Tự viết)';
$lang->about_improper_document_declare = 'Hãy viết ngắn gọn lý do tại sao lại báo cáo bài viết rồi gửi cho quản lý thì quản lý sẽ kiểm tra và xử lý.';
diff --git a/modules/document/queries/getDocumentCount.xml b/modules/document/queries/getDocumentCount.xml
index 4b064dcc2..94dd60a54 100644
--- a/modules/document/queries/getDocumentCount.xml
+++ b/modules/document/queries/getDocumentCount.xml
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentCountByGroupStatus.xml b/modules/document/queries/getDocumentCountByGroupStatus.xml
index ec922d296..7398fda36 100644
--- a/modules/document/queries/getDocumentCountByGroupStatus.xml
+++ b/modules/document/queries/getDocumentCountByGroupStatus.xml
@@ -23,8 +23,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentList.xml b/modules/document/queries/getDocumentList.xml
index fa6ffd6b3..c11e6c57a 100644
--- a/modules/document/queries/getDocumentList.xml
+++ b/modules/document/queries/getDocumentList.xml
@@ -26,8 +26,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentListExtraSort.xml b/modules/document/queries/getDocumentListExtraSort.xml
index 10b86b9e0..6964c8101 100644
--- a/modules/document/queries/getDocumentListExtraSort.xml
+++ b/modules/document/queries/getDocumentListExtraSort.xml
@@ -32,8 +32,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentListPage.xml b/modules/document/queries/getDocumentListPage.xml
index c6aed3abb..a1322cc9e 100644
--- a/modules/document/queries/getDocumentListPage.xml
+++ b/modules/document/queries/getDocumentListPage.xml
@@ -26,8 +26,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentListUseIndex.xml b/modules/document/queries/getDocumentListUseIndex.xml
index 68a5537bb..77b7015b3 100644
--- a/modules/document/queries/getDocumentListUseIndex.xml
+++ b/modules/document/queries/getDocumentListUseIndex.xml
@@ -29,8 +29,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentListWithExtraVars.xml b/modules/document/queries/getDocumentListWithExtraVars.xml
index 25e5f7e36..3034f3932 100644
--- a/modules/document/queries/getDocumentListWithExtraVars.xml
+++ b/modules/document/queries/getDocumentListWithExtraVars.xml
@@ -35,8 +35,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentListWithinExtraVarsExtraSort.xml b/modules/document/queries/getDocumentListWithinExtraVarsExtraSort.xml
index 78ac1cc24..888ae9ea2 100644
--- a/modules/document/queries/getDocumentListWithinExtraVarsExtraSort.xml
+++ b/modules/document/queries/getDocumentListWithinExtraVarsExtraSort.xml
@@ -32,8 +32,8 @@
-
-
+
+
diff --git a/modules/document/queries/getDocumentListWithinMember.xml b/modules/document/queries/getDocumentListWithinMember.xml
index 08dfd76dd..555fbe5cd 100644
--- a/modules/document/queries/getDocumentListWithinMember.xml
+++ b/modules/document/queries/getDocumentListWithinMember.xml
@@ -20,8 +20,8 @@
-
-
+
+
diff --git a/modules/document/queries/getTrashList.xml b/modules/document/queries/getTrashList.xml
index fe13af161..52cb97bbe 100644
--- a/modules/document/queries/getTrashList.xml
+++ b/modules/document/queries/getTrashList.xml
@@ -31,8 +31,8 @@
-
-
+
+
diff --git a/modules/document/tpl/document_list.html b/modules/document/tpl/document_list.html
index 51833e29d..4e73b31ba 100644
--- a/modules/document/tpl/document_list.html
+++ b/modules/document/tpl/document_list.html
@@ -89,8 +89,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';