From 9939b8b74774707be3d557ff85d59a1daf07d91d Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 2 Feb 2018 15:48:45 +0900 Subject: [PATCH] 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}