- 댓글 레벨 제한 방법
- 작성 제한
comment.controller.php 파일
function insertComment($obj, $manual_inserted = FALSE, $update_document = TRUE) 부분으로 가셔서
// get the original posting 부분 끝나는 지점에 레벨 제한 부분을 붙여넣어주세요.
// 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)) { $obj->homepage = 'http://'.$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.
부분 끝나는 지점에 레벨 제한을 붙여주세요
// 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) 부분 끝나는 지점에 붙여주세요
// 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);
애드온을 만드는 방법을 안다면 애드온으로 제작해봤을텐데..
애드온 제작 경험이 없고 방법을 검색해도 xe스쿨은 접속이 안되고 흑흑..
그냥 코어 수정으로 때려버립니다..