From 78aebbf77fd49d7402ded9b253a82b4d360065cd Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 31 Jan 2018 18:36:46 +0900 Subject: [PATCH 1/8] Add more point options --- modules/point/lang/en.php | 28 +++++++++------ modules/point/lang/ko.php | 16 ++++++--- modules/point/point.admin.controller.php | 21 ++++++++++-- modules/point/tpl/config.html | 22 ++++++++++-- modules/point/tpl/module_config.html | 36 ++++++++++++------- modules/point/tpl/point_module_config.html | 40 ++++++++++++++++++++-- 6 files changed, 130 insertions(+), 33 deletions(-) diff --git a/modules/point/lang/en.php b/modules/point/lang/en.php index 900a4a486..1eb034040 100644 --- a/modules/point/lang/en.php +++ b/modules/point/lang/en.php @@ -33,17 +33,23 @@ $lang->point_group_ratchet_yes = 'Maintain current group if point is reduced'; $lang->point_group_ratchet_no = 'Move to lower group if point is reduced'; $lang->about_point_link_group = 'If you specify level for a specific group, users are assigned into the group when they advance to the level by getting points.'; $lang->about_module_point = 'You can set point for each module, and modules which don\'t have any value will use the default point. All points will be restored on acting reverse.'; -$lang->point_signup = 'Sign up'; -$lang->point_insert_document = 'On Writing'; -$lang->point_delete_document = 'On Deleting'; -$lang->point_insert_comment = 'On Adding Comments'; -$lang->point_delete_comment = 'On Deleting Comments'; -$lang->point_upload_file = 'On Uploading'; -$lang->point_delete_file = 'On Deleting Files'; -$lang->point_download_file = 'On Downloading Files(Exclude images)'; -$lang->point_read_document = 'On Reading'; -$lang->point_voted = 'On Recommended'; -$lang->point_blamed = 'On Not Recommended'; +$lang->point_signup = 'Sign Up'; +$lang->point_insert_document = 'Writing a document'; +$lang->point_delete_document = 'Deleting a document'; +$lang->point_insert_comment = 'Writing a comment'; +$lang->point_delete_comment = 'Deleting a comment'; +$lang->point_upload_file = 'Uploading a file'; +$lang->point_delete_file = 'Deleting a file'; +$lang->point_download_file = 'Downloading a file (excluding images)'; +$lang->point_read_document = 'Reading another person\'s post'; +$lang->point_voter = 'Upvoting another person\'s document'; +$lang->point_blamer = 'Downvoting another person\'s document'; +$lang->point_voter_comment = 'Upvoting another person\'s comment'; +$lang->point_blamer_comment = 'Downvoting another person\'s comment'; +$lang->point_voted = 'One\'s document is upvoted'; +$lang->point_blamed = 'One\'s document is downvoted'; +$lang->point_voted_comment = 'One\'s comment is upvoted'; +$lang->point_blamed_comment = 'One\'s comment is downvoted'; $lang->cmd_point_config = 'Default Setting'; $lang->cmd_point_module_config = 'Module Setting'; $lang->cmd_point_act_config = 'Act Setting'; diff --git a/modules/point/lang/ko.php b/modules/point/lang/ko.php index 4b26c5b77..39cb7d12c 100644 --- a/modules/point/lang/ko.php +++ b/modules/point/lang/ko.php @@ -40,10 +40,18 @@ $lang->point_insert_comment = '댓글 작성'; $lang->point_delete_comment = '댓글 삭제'; $lang->point_upload_file = '파일 업로드'; $lang->point_delete_file = '파일 삭제'; -$lang->point_download_file = '파일 다운로드(이미지 제외)'; -$lang->point_read_document = '게시글 조회'; -$lang->point_voted = '추천 받음'; -$lang->point_blamed = '비추천 받음'; +$lang->point_download_file = '파일 다운로드 (이미지 제외)'; +$lang->point_read_document = '다른 사람의 글을 읽음'; +$lang->point_voter = '다른 사람의 글을 추천함'; +$lang->point_blamer = '다른 사람의 글을 비추천함'; +$lang->point_voter_comment = '다른 사람의 댓글을 추천함'; +$lang->point_blamer_comment = '다른 사람의 댓글을 비추천함'; +$lang->point_download_file_author = '내 파일이 다운로드됨 (이미지 제외)'; +$lang->point_read_document_author = '내 글이 읽힘'; +$lang->point_voted = '내 글이 추천받음'; +$lang->point_blamed = '내 글이 비추천받음'; +$lang->point_voted_comment = '내 댓글이 추천받음'; +$lang->point_blamed_comment = '내 댓글이 비추천받음'; $lang->cmd_point_config = '기본 설정'; $lang->cmd_point_module_config = '모듈별 설정'; $lang->cmd_point_act_config = '기능별 act 설정'; diff --git a/modules/point/point.admin.controller.php b/modules/point/point.admin.controller.php index d9979a4ba..accc94f9c 100644 --- a/modules/point/point.admin.controller.php +++ b/modules/point/point.admin.controller.php @@ -45,12 +45,18 @@ class pointAdminController extends point $config->signup_point = (int)$args->signup_point; $config->login_point = (int)$args->login_point; $config->insert_document = (int)$args->insert_document; - $config->read_document = (int)$args->read_document; $config->insert_comment = (int)$args->insert_comment; $config->upload_file = (int)$args->upload_file; $config->download_file = (int)$args->download_file; + $config->read_document = (int)$args->read_document; + $config->voter = (int)$args->voter; + $config->blamer = (int)$args->blamer; $config->voted = (int)$args->voted; $config->blamed = (int)$args->blamed; + $config->download_file_author = (int)$args->download_file_author; + $config->read_document_author = (int)$args->read_document_author; + $config->voter_comment = (int)$args->voter_comment; + $config->blamer_comment = (int)$args->blamer_comment; $config->voted_comment = (int)$args->voted_comment; $config->blamed_comment = (int)$args->blamed_comment; // The highest level @@ -134,7 +140,12 @@ class pointAdminController extends point { $args = Context::getRequestVars(); - $configTypeList = array('insert_document', 'insert_comment', 'upload_file', 'download_file', 'read_document', 'voted', 'blamed', 'voted_comment', 'blamed_comment'); + $configTypeList = array( + 'insert_document', 'insert_comment', 'upload_file', 'download_file', 'read_document', + 'voter', 'blamer', 'voter_comment', 'blamer_comment', + 'download_file_author', 'read_document_author', 'voted', 'blamed', 'voted_comment', 'blamed_comment', + ); + foreach($configTypeList AS $config) { if(is_array($args->{$config})) @@ -186,6 +197,12 @@ class pointAdminController extends point $config['upload_file'] = (int)Context::get('upload_file'); $config['download_file'] = (int)Context::get('download_file'); $config['read_document'] = (int)Context::get('read_document'); + $config['voter'] = (int)Context::get('voter'); + $config['blamer'] = (int)Context::get('blamer'); + $config['voter_comment'] = (int)Context::get('voter_comment'); + $config['blamer_comment'] = (int)Context::get('blamer_comment'); + $config['download_file_author'] = (int)Context::get('download_file_author'); + $config['read_document_author'] = (int)Context::get('read_document_author'); $config['voted'] = (int)Context::get('voted'); $config['blamed'] = (int)Context::get('blamed'); $config['voted_comment'] = (int)Context::get('voted_comment'); diff --git a/modules/point/tpl/config.html b/modules/point/tpl/config.html index 3c831e9d4..fa65d939f 100644 --- a/modules/point/tpl/config.html +++ b/modules/point/tpl/config.html @@ -53,6 +53,24 @@ :
+ : + +
+ : + +
+ : + +
+ : + +
+ : + +
+ : + +
:
@@ -60,10 +78,10 @@
: - +
: - +
diff --git a/modules/point/tpl/module_config.html b/modules/point/tpl/module_config.html index 2f67facf9..acb2d460a 100644 --- a/modules/point/tpl/module_config.html +++ b/modules/point/tpl/module_config.html @@ -16,24 +16,36 @@ {$lang->point_upload_file} {$lang->point_download_file} {$lang->point_read_document} + {$lang->point_voter} + {$lang->point_blamer} + {$lang->point_voter_comment} + {$lang->point_blamer_comment} + {$lang->point_download_file_author} + {$lang->point_read_document_author} {$lang->point_voted} {$lang->point_blamed} - {$lang->comment} {$lang->point_voted} - {$lang->comment} {$lang->point_blamed} + {$lang->point_voted_comment} + {$lang->point_blamed_comment} - {$val->browser_title}({$val->mid}) - {$config->point_name} - {$config->point_name} - {$config->point_name} - {$config->point_name} - {$config->point_name} - {$config->point_name} - {$config->point_name} - {$config->point_name} - {$config->point_name} + {$val->browser_title}
({$val->mid}) + + + + + + + + + + + + + + + diff --git a/modules/point/tpl/point_module_config.html b/modules/point/tpl/point_module_config.html index 0fda279e4..065ab98ce 100644 --- a/modules/point/tpl/point_module_config.html +++ b/modules/point/tpl/point_module_config.html @@ -38,6 +38,42 @@ {$module_config['point_name']}
+
+ +
+ {$module_config['point_name']} +
+
+
+ +
+ {$module_config['point_name']} +
+
+
+ +
+ {$module_config['point_name']} +
+
+
+ +
+ {$module_config['point_name']} +
+
+
+ +
+ {$module_config['point_name']} +
+
+
+ +
+ {$module_config['point_name']} +
+
@@ -51,13 +87,13 @@
- +
{$module_config['point_name']}
- +
{$module_config['point_name']}
From 08f6902798c6643274e7c1ccde218b7b770d3cc8 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 31 Jan 2018 18:37:10 +0900 Subject: [PATCH 2/8] Implement giving points to the voter --- modules/point/point.controller.php | 56 ++++++++++++++++-------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index b15b1e511..124d36317 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -459,42 +459,46 @@ class pointController extends point { $logged_info = Context::get('logged_info'); $logged_member_srl = $logged_info->member_srl; - $module_srl = $obj->module_srl; - $member_srl = abs($obj->member_srl); - if ($logged_member_srl && $logged_member_srl == $member_srl) - { - return; - } - elseif (!$member_srl) + $target_member_srl = abs($obj->member_srl); + if ($logged_member_srl && $logged_member_srl == $target_member_srl) { return; } - // Get current points. - $cur_point = getModel('point')->getPoint($member_srl, true); + // Document or comment? + $is_comment = isset($obj->comment_srl) && $obj->comment_srl; - // Get adjustment amount. - if ($obj->point > 0) + // Adjust points of the voter. + if ($logged_member_srl) { - $config_key = (isset($obj->comment_srl) && $obj->comment_srl) ? 'voted_comment' : 'voted'; - } - else - { - $config_key = (isset($obj->comment_srl) && $obj->comment_srl) ? 'blamed_comment' : 'blamed'; + $config_key = ($obj->point > 0) ? ($is_comment ? 'voter_comment' : 'voter') : ($is_comment ? 'blamer_comment' : 'blamer'); + $point = $this->_getModulePointConfig($obj->module_srl, $config_key); + if ($point) + { + if (isset($obj->cancel) && $obj->cancel) + { + $point = -1 * $point; + } + $cur_point = getModel('point')->getPoint($logged_member_srl, true); + $this->setPoint($logged_member_srl, $cur_point + $point); + } } - $point = $this->_getModulePointConfig($module_srl, $config_key); - if (!$point) + // Adjust points of the person who wrote the document or comment. + if ($target_member_srl) { - return; + $config_key = ($obj->point > 0) ? ($is_comment ? 'voted_comment' : 'voted') : ($is_comment ? 'blamed_comment' : 'blamed'); + $point = $this->_getModulePointConfig($obj->module_srl, $config_key); + if ($point) + { + if (isset($obj->cancel) && $obj->cancel) + { + $point = -1 * $point; + } + $cur_point = getModel('point')->getPoint($target_member_srl, true); + $this->setPoint($target_member_srl, $cur_point + $point); + } } - - if (isset($obj->cancel) && $obj->cancel) - { - $point = -1 * $point; - } - - $this->setPoint($member_srl, $cur_point + $point); } /** From 0b9a3fd56ca3dd7bb560e01b01dc85922b73b890 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 31 Jan 2018 23:35:59 +0900 Subject: [PATCH 3/8] Implement giving points to author and/or uploader when their document is read or their file is downloaded --- modules/point/point.controller.php | 109 ++++++++++++++++++----------- 1 file changed, 67 insertions(+), 42 deletions(-) diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index 124d36317..91777f235 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -339,10 +339,10 @@ class pointController extends point public function triggerBeforeDownloadFile($obj) { $logged_info = Context::get('logged_info'); - $member_srl = $logged_info->member_srl; + $logged_member_srl = $logged_info->member_srl; + $author_member_srl = abs($obj->member_srl); $module_srl = $obj->module_srl; - - if ($member_srl && abs($obj->member_srl) == $member_srl) + if ($logged_member_srl && $logged_member_srl == $author_member_srl) { return; } @@ -354,7 +354,7 @@ class pointController extends point } // Get current points. - $cur_point = $member_srl ? getModel('point')->getPoint($member_srl, true) : 0; + $cur_point = $logged_member_srl ? getModel('point')->getPoint($logged_member_srl) : 0; // If the user (member or guest) does not have enough points, deny access. $config = $this->getConfig(); @@ -372,22 +372,35 @@ class pointController extends point public function triggerDownloadFile($obj) { $logged_info = Context::get('logged_info'); - $member_srl = $logged_info->member_srl; + $logged_member_srl = $logged_info->member_srl; + $author_member_srl = abs($obj->member_srl); $module_srl = $obj->module_srl; - - if (!$member_srl || abs($obj->member_srl) == $member_srl) + if ($logged_member_srl && $logged_member_srl == $author_member_srl) { return; } - $point = $this->_getModulePointConfig($module_srl, 'download_file'); - if (!$point) + // Adjust points of the downloader. + if ($logged_member_srl) { - return; + $point = $this->_getModulePointConfig($module_srl, 'download_file'); + if ($point) + { + $cur_point = getModel('point')->getPoint($logged_member_srl); + $this->setPoint($logged_member_srl, $cur_point + $point); + } } - $cur_point = getModel('point')->getPoint($member_srl, true); - $this->setPoint($member_srl, $cur_point + $point); + // Adjust points of the uploader. + if ($author_member_srl) + { + $point = $this->_getModulePointConfig($module_srl, 'download_file_author'); + if ($point) + { + $cur_point = getModel('point')->getPoint($author_member_srl); + $this->setPoint($author_member_srl, $cur_point + $point); + } + } } /** @@ -397,25 +410,27 @@ class pointController extends point public function triggerUpdateReadedCount($obj) { $logged_info = Context::get('logged_info'); - $member_srl = $logged_info->member_srl; + $logged_member_srl = $logged_info->member_srl; + $author_member_srl = abs($obj->get('member_srl')); $module_srl = $obj->get('module_srl'); - $target_member_srl = abs($obj->get('member_srl')); - if ($member_srl && $target_member_srl == $member_srl) + if ($logged_member_srl && $logged_member_srl == $author_member_srl) { return; } - $point = $this->_getModulePointConfig($module_srl, 'read_document'); - if (!$point) + // Load configuration for reader and author points. + $reader_point = $this->_getModulePointConfig($module_srl, 'read_document'); + $author_point = $this->_getModulePointConfig($module_srl, 'read_document_author'); + if (!$reader_point && !$author_point) { return; } - // If the current member has already read this document, do not adjust points again. - if ($member_srl) + // If the reader has already read this document, do not adjust points again. + if ($logged_member_srl) { - $args = new stdClass(); - $args->member_srl = $member_srl; + $args = new stdClass; + $args->member_srl = $logged_member_srl; $args->document_srl = $obj->document_srl; $output = executeQuery('document.getDocumentReadedLogInfo', $args); if ($output->data->count) @@ -424,31 +439,41 @@ class pointController extends point } } - // Get current points. - $cur_point = $member_srl ? getModel('point')->getPoint($member_srl, true) : 0; - - // If the user (member or guest) does not have enough points, deny access. - $config = $this->getConfig(); - if($config->disable_read_document == 'Y' && $cur_point + $point < 0) + // Adjust points of the reader. + if ($reader_point) { - $message = sprintf(lang('msg_disallow_by_point'), abs($point), $cur_point); - $obj->add('content', $message); - $_SESSION['banned_document'][$obj->document_srl] = true; - return new BaseObject(-1, $message); - } - else - { - $_SESSION['banned_document'][$obj->document_srl] = false; + // Get current points. + $cur_point = $logged_member_srl ? getModel('point')->getPoint($logged_member_srl) : 0; + + // If the reader does not have enough points, deny access. + if ($cur_point + $reader_point < 0 && $this->getConfig()->disable_read_document == 'Y') + { + $message = sprintf(lang('msg_disallow_by_point'), abs($reader_point), $cur_point); + $obj->add('content', $message); + $_SESSION['banned_document'][$obj->document_srl] = true; + return new BaseObject(-1, $message); + } + else + { + $_SESSION['banned_document'][$obj->document_srl] = false; + } + + // Record the fact that this member has already read this document. + if ($logged_member_srl) + { + $args = new stdClass(); + $args->member_srl = $logged_member_srl; + $args->document_srl = $obj->document_srl; + $output = executeQuery('document.insertDocumentReadedLog', $args); + $this->setPoint($logged_member_srl, $cur_point + $reader_point); + } } - // Adjust points for member. - if ($member_srl) + // Adjust points of the person who wrote the document. + if ($author_point && $author_member_srl) { - $args = new stdClass(); - $args->member_srl = $member_srl; - $args->document_srl = $obj->document_srl; - $output = executeQuery('document.insertDocumentReadedLog', $args); - $this->setPoint($member_srl, $cur_point + $point); + $cur_point = getModel('point')->getPoint($author_member_srl); + $this->setPoint($author_member_srl, $cur_point + $author_point); } } From 7e74b45c5c4db3abf303cd0cc5ede7175d78e2c7 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 31 Jan 2018 23:37:32 +0900 Subject: [PATCH 4/8] Remove unnecessary reload of point from DB --- modules/point/point.controller.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index 91777f235..14b8a2ba3 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -32,7 +32,7 @@ class pointController extends point return; } - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); $this->setPoint($member_srl, $cur_point + $point, 'signup'); } @@ -60,7 +60,7 @@ class pointController extends point return; } - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); $this->setPoint($member_srl, $cur_point + $point); } @@ -103,7 +103,7 @@ class pointController extends point } // Get the points of the member - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); // Add points for the document. $document_point = $this->_getModulePointConfig($module_srl, 'insert_document'); @@ -141,7 +141,7 @@ class pointController extends point { if ($obj->uploaded_count > $oDocument->get('uploaded_count')) { - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); $attached_files_point = $this->_getModulePointConfig($module_srl, 'upload_file'); $cur_point += $attached_files_point * ($obj->uploaded_count - $oDocument->get('uploaded_count')); $this->setPoint($member_srl, $cur_point); @@ -150,7 +150,7 @@ class pointController extends point } // Get the points of the member - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); // Add points for the document. $document_point = $this->_getModulePointConfig($module_srl, 'insert_document'); @@ -198,7 +198,7 @@ class pointController extends point } // Get the points of the member - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); // Subtract points for the document. $document_point = $this->_getModulePointConfig($module_srl, 'insert_document'); @@ -238,7 +238,7 @@ class pointController extends point } // Get the points of the member - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); // Add points for the comment. $comment_point = $this->_getModulePointConfig($module_srl, 'insert_comment'); @@ -290,7 +290,7 @@ class pointController extends point } // Get the points of the member - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); // Add points for the comment. $comment_point = $this->_getModulePointConfig($module_srl, 'insert_comment'); @@ -323,7 +323,7 @@ class pointController extends point } // Get the points of the member - $cur_point = getModel('point')->getPoint($member_srl, true); + $cur_point = getModel('point')->getPoint($member_srl); // Subtract points for the file. $file_point = $this->_getModulePointConfig($module_srl, 'upload_file'); @@ -504,7 +504,7 @@ class pointController extends point { $point = -1 * $point; } - $cur_point = getModel('point')->getPoint($logged_member_srl, true); + $cur_point = getModel('point')->getPoint($logged_member_srl); $this->setPoint($logged_member_srl, $cur_point + $point); } } @@ -520,7 +520,7 @@ class pointController extends point { $point = -1 * $point; } - $cur_point = getModel('point')->getPoint($target_member_srl, true); + $cur_point = getModel('point')->getPoint($target_member_srl); $this->setPoint($target_member_srl, $cur_point + $point); } } @@ -560,7 +560,7 @@ class pointController extends point $config = $oModuleModel->getModuleConfig('point'); // Get the default configuration information - $current_point = $oPointModel->getPoint($member_srl, true); + $current_point = $oPointModel->getPoint($member_srl); $current_level = $oPointModel->getLevel($current_point, $config->level_step); // Change points From 856c6ae4bd3c8bff9e0af7c959f53006d57f5bd0 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 31 Jan 2018 23:40:29 +0900 Subject: [PATCH 5/8] Standardize on upvote/downvote instead of recommend/not recommend --- common/lang/en.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/common/lang/en.php b/common/lang/en.php index cce0402b5..fd557c7dd 100644 --- a/common/lang/en.php +++ b/common/lang/en.php @@ -27,8 +27,8 @@ $lang->cmd_replace = 'Replace'; $lang->cmd_confirm = 'Confirm'; $lang->cmd_cancel = 'Cancel'; $lang->cmd_back = 'Go Back'; -$lang->cmd_vote = 'Recommend'; -$lang->cmd_vote_down = 'Not recommend'; +$lang->cmd_vote = 'Upvote'; +$lang->cmd_vote_down = 'Downvote'; $lang->cmd_declare = 'Report'; $lang->cmd_cancel_declare = 'Cancel Report'; $lang->cmd_declared_list = 'Reported List'; @@ -265,13 +265,13 @@ $lang->fail_to_registed = 'Failed to register.'; $lang->fail_to_update = 'Fail to update.'; $lang->fail_to_delete = 'Failed to delete.'; $lang->fail_to_move = 'Failed to move.'; -$lang->failed_voted = 'No permission to Recommend.'; -$lang->failed_blamed = 'No permission to Not Recommend.'; +$lang->failed_voted = 'No permission to upvote.'; +$lang->failed_blamed = 'No permission to downvote.'; $lang->failed_declared = 'No permission to 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?'; -$lang->confirm_vote = 'Are you sure you want to recommend?'; +$lang->confirm_vote = 'Are you sure you want to upvote?'; $lang->confirm_delete = 'Are you sure you want to delete?'; $lang->confirm_restore = 'Are you sure you want to restore?'; $lang->confirm_move = 'Are you sure you want to move?'; From d946d7596913919678b0fb27bc08089048fc6ccb Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 2 Feb 2018 15:39:56 +0900 Subject: [PATCH 6/8] Remove unnecessary session check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit $_SESSION['readed_document'][$document_srl]이 이미 참일 경우 실행되는 코드이므로 $_SESSION['readed_document'][$document_srl]을 참으로 지정해 줄 필요 없움. --- modules/document/document.controller.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index bb9c07cbe..e9f263bca 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -1176,10 +1176,6 @@ class documentController extends document // Option 'some': only count once per session. if ($config->view_count_option != 'all' && $_SESSION['readed_document'][$document_srl]) { - if (Context::getSessionStatus()) - { - $_SESSION['readed_document'][$document_srl] = true; - } return false; } From 9939b8b74774707be3d557ff85d59a1daf07d91d Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 2 Feb 2018 15:48:45 +0900 Subject: [PATCH 7/8] Add option to allow robots to read documents --- modules/point/lang/en.php | 1 + modules/point/lang/ko.php | 5 +++-- modules/point/point.admin.controller.php | 7 +++---- modules/point/point.controller.php | 18 +++++++++++++----- modules/point/tpl/config.html | 6 ++++-- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/modules/point/lang/en.php b/modules/point/lang/en.php index 1eb034040..fffc01e3e 100644 --- a/modules/point/lang/en.php +++ b/modules/point/lang/en.php @@ -17,6 +17,7 @@ $lang->disable_download = 'Prohibit Downloads'; $lang->about_disable_download = 'This will prohibit downloads when there are not enough points. (Exclude image files)'; $lang->disable_read_document = 'Prohibit Readings'; $lang->about_disable_read_document = 'Users will be unable to read articles when they do not have enough points'; +$lang->disable_read_document_except_robots = 'Except search robots'; $lang->level_point_calc = 'Point Calculation per Point'; $lang->expression = 'Please input Javascript formula by using level variable i. ex) Math.pow(i, 2) * 90'; $lang->cmd_exp_calc = 'Calculate'; diff --git a/modules/point/lang/ko.php b/modules/point/lang/ko.php index 39cb7d12c..55bb0407e 100644 --- a/modules/point/lang/ko.php +++ b/modules/point/lang/ko.php @@ -14,9 +14,10 @@ $lang->about_point_name = '포인트 이름이나 단위를 정할 수 있습니 $lang->level_point = '레벨 포인트'; $lang->about_level_point = '각 회원의 포인트가 아래 레벨별 포인트에 도달하거나 미달하게 되면 해당 회원의 레벨이 조절됩니다.'; $lang->disable_download = '다운로드 금지'; -$lang->about_disable_download = '포인트가 부족할 경우 다운로드를 금지 합니다. (이미지 파일, 동영상 파일등 직접 링크가 가능한 파일들은 예외입니다.)'; +$lang->about_disable_download = '포인트가 부족할 경우 다운로드를 금지합니다. (이미지 파일, 동영상 파일등 직접 링크가 가능한 파일들은 예외입니다.)'; $lang->disable_read_document = '글 열람 금지'; -$lang->about_disable_read_document = '포인트가 부족할 경우 글 열람을 금지 합니다'; +$lang->about_disable_read_document = '포인트가 부족할 경우 글 열람을 금지합니다.'; +$lang->disable_read_document_except_robots = '검색엔진은 열람 허용'; $lang->level_point_calc = '레벨별 포인트 계산'; $lang->expression = '레벨 변수 i를 사용하여 자바스크립트 수식을 입력하세요. 예: Math.pow(i, 2) * 90'; $lang->cmd_exp_calc = '계산'; diff --git a/modules/point/point.admin.controller.php b/modules/point/point.admin.controller.php index accc94f9c..4cde76166 100644 --- a/modules/point/point.admin.controller.php +++ b/modules/point/point.admin.controller.php @@ -66,11 +66,10 @@ class pointAdminController extends point // Set the level icon $config->level_icon = $args->level_icon; // Check if downloads are not allowed - if($args->disable_download == 'Y') $config->disable_download = 'Y'; - else $config->disable_download = 'N'; + $config->disable_download = ($args->disable_download === 'Y') ? 'Y' : 'N'; // Check if reading a document is not allowed - if($args->disable_read_document == 'Y') $config->disable_read_document = 'Y'; - else $config->disable_read_document = 'N'; + $config->disable_read_document = ($args->disable_read_document === 'Y') ? 'Y' : 'N'; + $config->disable_read_document_except_robots = ($args->disable_read_document_except_robots === 'Y') ? 'Y' : 'N'; //check is reading a document is not regdate setting $config->no_point_date = (int)$args->no_point_date; diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index 14b8a2ba3..b8faefbe5 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -446,12 +446,20 @@ class pointController extends point $cur_point = $logged_member_srl ? getModel('point')->getPoint($logged_member_srl) : 0; // If the reader does not have enough points, deny access. - if ($cur_point + $reader_point < 0 && $this->getConfig()->disable_read_document == 'Y') + $config = $this->getConfig(); + if ($cur_point + $reader_point < 0 && $config->disable_read_document == 'Y') { - $message = sprintf(lang('msg_disallow_by_point'), abs($reader_point), $cur_point); - $obj->add('content', $message); - $_SESSION['banned_document'][$obj->document_srl] = true; - return new BaseObject(-1, $message); + if (!$logged_member_srl && $config->disable_read_document_except_robots == 'Y' && isCrawler()) + { + $_SESSION['banned_document'][$obj->document_srl] = false; + } + else + { + $message = sprintf(lang('msg_disallow_by_point'), abs($reader_point), $cur_point); + $obj->add('content', $message); + $_SESSION['banned_document'][$obj->document_srl] = true; + return new BaseObject(-1, $message); + } } else { diff --git a/modules/point/tpl/config.html b/modules/point/tpl/config.html index fa65d939f..34f6de0b4 100644 --- a/modules/point/tpl/config.html +++ b/modules/point/tpl/config.html @@ -106,14 +106,16 @@
- {$lang->about_disable_read_document} + {$lang->about_disable_read_document}   + + {$lang->disable_read_document_except_robots}
{$lang->day_ago} -

{$lang->about_no_point_date}

+

{$lang->about_no_point_date}

From b5f47e1b33b4ae1ab6e9d3d928b02048ecc03f4a Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 2 Feb 2018 15:51:34 +0900 Subject: [PATCH 8/8] Fix not enough points message to include non-members --- modules/point/lang/ko.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/point/lang/ko.php b/modules/point/lang/ko.php index 55bb0407e..804d4a5f4 100644 --- a/modules/point/lang/ko.php +++ b/modules/point/lang/ko.php @@ -57,8 +57,8 @@ $lang->cmd_point_config = '기본 설정'; $lang->cmd_point_module_config = '모듈별 설정'; $lang->cmd_point_act_config = '기능별 act 설정'; $lang->cmd_point_member_list = '회원 포인트 목록'; -$lang->msg_cannot_download = '포인트가 부족하여 다운로드할 수 없습니다.'; -$lang->msg_disallow_by_point = '포인트가 부족하여 글을 읽을 수 없습니다. (필요한 포인트 : %d, 현재 포인트 : %d)'; +$lang->msg_cannot_download = '로그인하지 않았거나 포인트가 부족하여 다운로드할 수 없습니다.'; +$lang->msg_disallow_by_point = '로그인하지 않았거나 포인트가 부족하여 글을 읽을 수 없습니다.
(필요한 포인트 : %d, 현재 포인트 : %d)'; $lang->point_recal_message = '포인트 적용 중입니다. (%d / %d)'; $lang->point_recal_finished = '포인트 재계산이 완료되었습니다.'; $lang->point_update_desc = '포인트를 증가시키려면 +를 감소시키려면 -를 숫자앞에 표기한 후 업데이트해 주세요. + 또는 - 표시가 없으면 입력한 값으로 설정됩니다.';