RX / XERXE 활용팁서드파티
Extra Form
서드파티 이름 사이트운영관리 모듈
서드파티 URL https://xetown.com/rxe_point/23227

글쓰기에 대한 제한을 별도로 추가하게 된 이유

 

* 글쓰기만 제한할 필요가 있는 게시판을 접근 또는 읽기 금지로 불필요한 차단이 발생하는 문제

 

 

원하는 게시판은 모듈접근,글읽기 모두 제한하지 않고 글쓰기만 제한할 수 있습니다.

비회원 또는 활동이 없는 회원 에게도 게시판이 개방되는 것을 원하는 경우 유용합니다.

(ex:질문게시판,장터게시판 등)

 

 

모듈의 

/tpl 폴더의 limilt_access_config.html 파일에 추가를 해 줍니다.

 

                <tr>
                    <th scope="col">모듈명 (mid)</th>
                    <th scope="col">기간 (n일동안)</th>
                    <th scope="col" style="text-align:center;">모듈 접근 제한 (조건미달시 제한)</th>
                    <th scope="col" style="text-align:center;">게시글 열람 제한 (조건미달시 제한)</th>
                    <th scope="col" style="text-align:center;">게시글 쓰기 제한 (조건미달시 제한)</th>
                </tr>

 

 

 

 

                    <!--// 게시글쓰기제한-->
                    <td class="nowr">
                        글 <input type="text" style="width:25px; margin-right:10px!important;" name="limit_access_document_wr[{$val->module_srl}][doc]" value="{$module_part_config[$val->module_srl]['limit_access_document_wr']['doc']}" disabled="disabled"|cond="$val->module!='board'" />
                        댓글 <input type="text" style="width:25px; margin-right:10px!important;" name="limit_access_document_wr[{$val->module_srl}][com]" value="{$module_part_config[$val->module_srl]['limit_access_document_wr']['com']}" disabled="disabled"|cond="$val->module!='board'" />
                        레벨 <input type="number" style="width:40px; margin-right:0px!important;" name="limit_access_document_wr[{$val->module_srl}][level]" value="{$module_part_config[$val->module_srl]['limit_access_document_wr']['level']}" min="0" max="{$max_level}" disabled="disabled"|cond="$val->module!='board'" />
                    </td>

 

sitemanagement.admin.controller.php 파일에 아래부분을 수정해 줍니다.

 

//모듈별로 설정묶음
            $configList = array('limit_access_module', 'limit_access_document', 'limit_access_document_wr', 'limit_date');
            foreach($configList as $config){    
                foreach($args->{$config} as $key => $val){
                    $module_part_config[$key][$config] = $val;
                }
            }

 

 

 

sitemanagement.controller.php 파일에 아래부분을 추가해 줍니다.

 

            /***************************
            * 게시글 쓰기 제한
            ****************************/
            if($obj->act == 'dispBoardWrite'){
                //레벨확인
                if($module_part_config['limit_access_document_wr']['level'] && $module_part_config['limit_access_document_wr']['level'] > $member_level){
                    $message = '레벨 부족으로 인해 글쓰기가 제한되었습니다.\n'.$module_part_config['limit_access_document_wr']['level'].' 레벨 이후 글쓰기가 가능합니다.';
                    if(!Context::get('logged_info')) $message = '로그인이 필요합니다';
                    $this->alertMsg($message);
                }
                //게시글수 확인
                if($module_part_config['limit_access_document_wr']['doc'] && $module_part_config['limit_access_document_wr']['doc'] > $member_doc_count){
                    $msg_date = $module_part_config['limit_date'] ? $module_part_config['limit_date'].'일간 ' : '';
                    $message = '활동 부족으로 인해 글쓰기가 제한되었습니다.\n'.$msg_date.'게시글 '.$module_part_config['limit_access_document_wr']['doc'].'개 이상 작성 후 글쓰기가 가능합니다.\n현재 작성한 게시글은 '.$member_doc_count.'개 입니다.';
                    if(!Context::get('logged_info')) $message = '로그인이 필요합니다';
                    $this->alertMsg($message);
                }
                //댓글수 확인
                if($module_part_config['limit_access_document_wr']['com'] && $module_part_config['limit_access_document_wr']['com'] > $member_com_count){
                    $msg_date = $module_part_config['limit_date'] ? $module_part_config['limit_date'].'일간 ' : '';
                    $message = '활동 부족으로 인해 접근이 제한되었습니다.\n'.$msg_date.'댓글 '.$module_part_config['limit_access_document_wr']['com'].'개 이상 작성 후 글쓰기가 가능합니다.\n현재 작성한 댓글은 '.$member_com_count.'개 입니다.';
                    if(!Context::get('logged_info')) $message = '로그인이 필요합니다';
                    $this->alertMsg($message);
                }
            }
        }

 

 

 

 

2018년 6월 12일 누락내용 추가합니다.

sitemanagement.controller.php

아래 부분에 붉은색 부분을 추가해서 글쓰기 제한 시에도 작성한 글,댓글 수를 가져오게 해 줍니다.

 

//작성한 게시물 수 가져옴 (설정값 존재시)
            if($module_part_config['limit_access_module']['doc'] || $module_part_config['limit_access_document']['doc'] || $module_part_config['limit_access_document_wr']['doc']){
                if($logged_info){
                    $args = new stdClass();
                    $args->regdate_more = $module_part_config['limit_date'] ? date('Ymd',strtotime(sprintf('-%s days', $module_part_config['limit_date']))) : '';
                    $args->member_srl = abs($logged_info->member_srl);
                    $member_doc_count = executeQuery('sitemanagement.getDocumentCountByMemberSrl', $args)->data->count;
                }else{ 
                    $member_doc_count = 0;
                }
            }
            
            //작성한 덧글 수 가져옴 (설정값 존재시)
            if($module_part_config['limit_access_module']['com'] || $module_part_config['limit_access_document']['com'] || $module_part_config['limit_access_document_wr']['com']){
                if($logged_info){
                    $args = new stdClass();
                    $args->regdate_more = $module_part_config['limit_date'] ? date('Ymd',strtotime(sprintf('-%s days', $module_part_config['limit_date']))) : '';
                    $args->member_srl = abs($logged_info->member_srl);
                    $member_com_count = executeQuery('sitemanagement.getCommentCountByMemberSrl', $args)->data->count;
                }else{
                    $member_com_count = 0;
                }
            }

 

글쓴이 웹지기

profile
^ ^
  • profile
    달콤한인생 2018.06.02 17:18:20
    진짜 매번 감사합니다..
  • profile
    웹지기 2018.06.05 16:10:08

    기존내용을 복사해서 쓰다보니 문구가 잘못되었네요.

    접근이 -> 글쓰기가
    로 고치면 자연스럽습니다.

     

    본문 수정완료.


서버에 요청 중입니다. 잠시만 기다려 주십시오...