반응형
- 댓글 레벨 제한 방법
- 작성 제한
comment.controller.php 파일
function insertComment($obj, $manual_inserted = FALSE, $update_document = TRUE) 부분으로 가셔서
// get the original posting 부분 끝나는 지점에 레벨 제한 부분을 붙여넣어주세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | // get the original posting if (! $manual_inserted ) { $oDocument = $oDocumentModel ->getDocument( $document_srl ); if ( $document_srl != $oDocument ->document_srl) { return new BaseObject(-1, 'msg_invalid_document' ); } if ( $oDocument ->isLocked()) { return new BaseObject(-1, 'msg_invalid_request' ); } if ( $obj ->homepage) { $obj ->homepage = removeHackTag( $obj ->homepage); if (!preg_match( '/^[a-z]+:\/\//i' , $obj ->homepage)) { } } // input the member's information if logged-in $logged_info = Context::get( 'logged_info' ); if (Context::get( 'is_logged' ) && ! $obj ->manual_member_info) { $obj ->member_srl = $logged_info ->member_srl; // user_id, user_name and nick_name already encoded $obj ->user_id = htmlspecialchars_decode( $logged_info ->user_id); $obj ->user_name = htmlspecialchars_decode( $logged_info ->user_name); $obj ->nick_name = htmlspecialchars_decode( $logged_info ->nick_name); $obj ->email_address = $logged_info ->email_address; $obj ->homepage = $logged_info ->homepage; } } // 레벨 제한 $module_info = Context::get( "module_info" ); $module_srl = $module_info ->module_srl; if (in_array( $module_srl , array (1000,1001,1002,1003))) { // 포인트 & 레벨 정보 불러오기 $oPointModel = &getModel( 'point' ); $point = $oPointModel ->getPoint( $logged_info ->member_srl); $oModuleModel = &getModel( 'module' ); $config = $oModuleModel ->getModuleConfig( 'point' ); $level = $oPointModel ->getLevel( $point , $config ->level_step); // 어드민은 레벨제한 없이 작성가능 $notadmin = $logged_info ->is_admin != 'Y' ; // 본인 글에서는 레벨 제한 없이 작성가능 $nothuman = $obj ->member_srl != $oDocument ->get( 'member_srl' ); if ( $level <3 && $notadmin && $nothuman && $obj ->content != "감사합니다" ) return new Object(-1, '3레벨 미만 유저는 댓글을 작성하실 수 없습니다. \n [ 감사합니다 ] 제외' ); } |
물론 레벨과 허용문구는 수정하셔도 무방합니다.
- 수정 제한
comment.controller.php 파일
function updateComment($obj, $is_admin = FALSE, $manual_updated = FALSE) 부분으로 가셔서
// set modifier's information if logged-in and posting author and modifier are matched.
부분 끝나는 지점에 레벨 제한을 붙여주세요
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | // set modifier's information if logged-in and posting author and modifier are matched. $logged_info = Context::get( 'logged_info' ); if (Context::get( 'is_logged' ) && ! $obj ->manual_member_info) { if ( $source_obj ->member_srl == $logged_info ->member_srl) { $obj ->member_srl = $logged_info ->member_srl; $obj ->user_name = $logged_info ->user_name; $obj ->nick_name = $logged_info ->nick_name; $obj ->email_address = $logged_info ->email_address; $obj ->homepage = $logged_info ->homepage; } } // 레벨 제한 $module_info = Context::get( "module_info" ); $module_srl = $module_info ->module_srl; if (in_array( $module_srl , array (1000,1001,1002,1003))) { // 포인트 & 레벨 정보 불러오기 $oPointModel = &getModel( 'point' ); $point = $oPointModel ->getPoint( $logged_info ->member_srl); $oModuleModel = &getModel( 'module' ); $config = $oModuleModel ->getModuleConfig( 'point' ); $level = $oPointModel ->getLevel( $point , $config ->level_step); // 어드민은 레벨제한 없이 작성가능 $notadmin = $logged_info ->is_admin != 'Y' ; // 본인 글에서는 레벨 제한 없이 작성가능 $oDocumentModel = getModel( 'document' ); $oDocument = $oDocumentModel ->getDocument( $obj ->document_srl); $nothuman = $obj ->member_srl != $oDocument ->get( 'member_srl' ); if ( $level <3 && $notadmin && $nothuman && $obj ->content != "감사합니다" ) return new Object(-1, '다운로드 게시판에서 3레벨 미만 유저는 댓글을 수정하실 수 없습니다. \n [ 감사합니다 ] 제외' ); } |
- 쪽지 레벨 제한 방법
communication.controller.php 파일
function procCommunicationSendMessage() 부분으로 가셔서
// check whether to allow to receive the message(pass if a top-administrator) 부분 끝나는 지점에 붙여주세요
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | // Check if there is a member to receive a message $oMemberModel = getModel( 'member' ); $oCommunicationModel = getModel( 'communication' ); $config = $oCommunicationModel ->getConfig(); if (! $oCommunicationModel ->checkGrant( $config ->grant_send)) { throw new Rhymix\Framework\Exceptions\NotPermitted; } $receiver_member_info = $oMemberModel ->getMemberInfoByMemberSrl( $receiver_srl ); if ( $receiver_member_info ->member_srl != $receiver_srl ) { throw new Rhymix\Framework\Exception( 'msg_not_exists_member' ); } // check whether to allow to receive the message(pass if a top-administrator) if ( $logged_info ->is_admin != 'Y' ) { if ( $receiver_member_info ->allow_message == 'F' ) { if (! $oCommunicationModel ->isFriend( $receiver_member_info ->member_srl)) { throw new Rhymix\Framework\Exception( 'msg_allow_message_to_friend' ); } } else if ( $receiver_member_info ->allow_message == 'N' ) { throw new Rhymix\Framework\Exception( 'msg_disallow_message' ); } } //레벨 제한 $oPointModel = &getModel( 'point' ); $point = $oPointModel ->getPoint(Context::get( 'logged_info' )->member_srl); $oModuleModel = &getModel( 'module' ); $config = $oModuleModel ->getModuleConfig( 'point' ); $level = $oPointModel ->getLevel( $point , $config ->level_step); // 어드민은 레벨제한 없이 작성가능 $notadmin = $logged_info ->is_admin != 'Y' ; if ( $level <5 && $notadmin ) return new Object(-1, '5레벨 미만 유저는 쪽지를 발송하실 수 없습니다 ㅡㅡ! ' ); // send a message $output = $this ->sendMessage( $logged_info ->member_srl, $receiver_srl , $title , $content ); |
반응형