웹마스터 팁

특정 확장 변수를 대상으로 작성 및 열람의 권한을 설정 할 수 있도록 하는 질문을 몇번 접하여 소개 하고자 합니다.

본 팁에서 소개하는 방법은 특정 확장 변수만을 대상으로 하므로 작성 및 열람이 설정 되지않은 확장변수는 작성 및 열람이 가능합니다.
본 팁은 zbxe 1.0.6(r4581)을 기준으로 작성 하였습니다.
주의 : 본팁을 적용 하시면, 여러분이 사용하시고 있는 게시판스킨에 아래의 5번과 6번의 소스가 적용되지 않으면 확장 변수가 표현 되지 않습니다.  반드시 아래으; 1번 ~ 4번의 모듈 수정 부분을 적용 하시고, 여러분이 사용하시는 모든 게시판스킨에 아래의 5번과 6번의 소스를 적용 하시기 바랍니다. 

본 팁을 적용하신후 게시판 설정>게시판 정보>수정>확장변수에서 확장 변수의 권한을 설정 하시면 됩니다.

1. modules/board/tpl/board_insert.html
    line 184 부분에           소스를 추가 합니다.

<!--@if(!$module_srls)-->
        <
!--@for($i=1;$i<=20;$i++)-->
            <div class="gap1"></div>
            {@ $extra_vars_name = ''}
            {@ $extra_vars_type = ''}
            {@ $extra_vars_grant_type = ''}
            {@ $extra_vars_is_required = ''}
            {@ $extra_vars_default_value = ''}
            {@ $extra_vars_desc = ''}
            {@ $extra_vars_search = ''}
            <
!--@if($module_info->extra_vars[$i])-->
                {@ $extra_vars_name = $module_info->extra_vars[$i]->name}
                {@ $extra_vars_type = $module_info->extra_vars[$i]->type}
               {@ $extra_vars_grant_type = $module_info->extra_vars[$i]->grant_type}
                {@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required}
                {@ $extra_vars_default_value = $module_info->extra_vars[$i]->default}
                {@ $extra_vars_desc = $module_info->extra_vars[$i]->desc}
                {@ $extra_vars_search = $module_info->extra_vars[$i]->search}
            <
!--@end-->
        <table cellspacing="0" class="adminTable ">
        <col width="150" />
        <col />
        <caption>{$lang->extra_vars} {$i}</caption>
        <tr>
            <th>{$lang->column_name}</th>
            <td><input type="text" name="extra_vars_{$i}_name" value="{$extra_vars_name}" class="inputTypeText w200" /> </td>
        </tr>
        <tr>
            <th>{$lang->column_type}</th>
            <td>
                <select name="extra_vars_{$i}_type">
                    <
!--@foreach($lang->column_type_list as $key => $val)-->
                       
                        <option value="{$key}" <
!--@if($extra_vars_type==$key)-->selected="selected"<!--@end-->>{$lang->column_type_list[$key]}</option>
                       
                    <
!--@end-->
                </select>
            </td>
        </tr>
  
<tr>
            <th>{$lang->grant_type}</th>
            <td>
                <select name="extra_vars_{$i}_grant_type">
                    <
!--@foreach($lang->grant_type_list as $key => $val)-->
                       
                        <option value="{$key}" <
!--@if($extra_vars_grant_type==$key)-->selected="selected"<!--@end-->>{$lang->grant_type_list[$key]}</option>
                       
                    <
!--@end-->
                </select>
            </td>
        </tr>
        <tr>

2. modules/board/tpl/board_info.html
    line 96 부분에           소스를 추가 합니다.

<!--@for($i=1;$i<=20;$i++)-->
    <
!--@if($module_info->extra_vars[$i
])-->
    {@ $extra_vars_name = $module_info->extra_vars[$i]->name}
    {@ $extra_vars_type = $module_info->extra_vars[$i]->type}
   {@ $extra_vars_grant_type = $module_info->extra_vars[$i]->grant_type}
    {@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required=='Y'?'Y':'N'}
    {@ $extra_vars_default_value = $module_info->extra_vars[$i]->default?$module_info->extra_vars[$i]->default:'&nbsp;'}
    {@ $extra_vars_desc = $module_info->extra_vars[$i]->desc?$module_info->extra_vars[$i]->desc:'&nbsp;'}
    {@ $extra_vars_search = $module_info->extra_vars[$i]->search=='Y'?'Y':'N'}

    <div class="gap1"></div>
    <table cellspacing="0" class="adminTable">
    <col width="150" />
    <col />
    <caption>{$lang->extra_vars} {$i}</caption>
    <tr>
        <th>{$lang->column_name}</th>
        <td>{$extra_vars_name}</td>
    </tr>
    <tr>
        <th>{$lang->column_type}</th>
        <td>{$extra_vars_type}</td>
    </tr>
 
<tr>
        <th>{$lang->grant_type}</th>
        <td>{$extra_vars_grant_type}</td>
    </tr>

3.modules/board/tpl/filter/insert_board.xml
       line 27 부분에           소스를 추가 합니다.

        <param name="header_text" target="header_text" />
        <param name="footer_text" target="footer_text" />
        <param name="admin_id" target="admin_id" />
        <param name="extra_vars_1_grant_type" target="extra_vars_1_grant_type" />
        <param name="extra_vars_2_grant_type" target="extra_vars_2_grant_type" />
        <param name="extra_vars_3_grant_type" target="extra_vars_3_grant_type" />
        <param name="extra_vars_4_grant_type" target="extra_vars_4_grant_type" />
        <param name="extra_vars_5_grant_type" target="extra_vars_5_grant_type" />
        <param name="extra_vars_6_grant_type" target="extra_vars_6_grant_type" />
        <param name="extra_vars_7_grant_type" target="extra_vars_7_grant_type" />
        <param name="extra_vars_8_grant_type" target="extra_vars_8_grant_type" />
        <param name="extra_vars_9_grant_type" target="extra_vars_9_grant_type" />
        <param name="extra_vars_10_grant_type" target="extra_vars_10_grant_type" />
        <param name="extra_vars_11_grant_type" target="extra_vars_11_grant_type" />
        <param name="extra_vars_12_grant_type" target="extra_vars_12_grant_type" />
        <param name="extra_vars_13_grant_type" target="extra_vars_13_grant_type" />
        <param name="extra_vars_14_grant_type" target="extra_vars_14_grant_type" />
        <param name="extra_vars_15_grant_type" target="extra_vars_15_grant_type" />
        <param name="extra_vars_16_grant_type" target="extra_vars_16_grant_type" />
        <param name="extra_vars_17_grant_type" target="extra_vars_17_grant_type" />
        <param name="extra_vars_18_grant_type" target="extra_vars_18_grant_type" />
        <param name="extra_vars_19_grant_type" target="extra_vars_19_grant_type" />
        <param name="extra_vars_20_grant_type" target="extra_vars_20_grant_type" />

4.common/lang/ko.lang.php
      lin 221 부분에           소스를 추가 합니다.
$lang->confirm_leave = '탈퇴 하시겠습니까??';

  $lang->grant_type = '권한'+ '+ ';
 $lang->grant_type_list['all_to_all'] = '권한자 작성, 권한자 열람(all_to_all)';
 $lang->grant_type_list['all_to_admin'] = '권한자 작성, 관리자 열람(all_to_admin)';
 $lang->grant_type_list['admin_to_all'] = '관리자 작성, 권한자 열람(admin_to_all)';
 $lang->grant_type_list['admin_to_admin'] = '관리자 작성, 관리자 열람(admin_to_admin)';

 $lang->column_type = '형식';

5. modules/board/skins/xe_board/write_form.html
       line 84 부분에           소스를 추가 합니다.
<!--@if($module_info->extra_vars)-->
    <table cellspacing="0" summary="" class="extraVarsList">
    <col width="150" />
    <col />
    <
!--@foreach($module_info->extra_vars as $key => $val)-->
        <
!--@if($val->name)-->
    <tr>
        <th scope="row">
  
<!--@if($grant->manager && ($val->grant_type=='admin_to_admin' || $val->grant_type=='admin_to_all'))-->
  {$val->name} <
!--@if($val->is_required=='Y')-->*<!--@end-->
  <
!--@elseif($val->grant_type=='all_to_all' || $val->grant_type=='all_to_admin')-->
  {$val->name} <
!--@if($val->is_required=='Y')-->*<!--@end-->
  
<!--@end-->
  </th>
        <td>
  
<!--@if($grant->manager && ($val->grant_type=='admin_to_admin' || $val->grant_type=='admin_to_all'))-->
  <!--#include("./extra_var_form.html")-->
  <
!--@elseif($val->grant_type=='all_to_all' || $val->grant_type=='all_to_admin')-->
  <!--#include("./extra_var_form.html")-->
  
<!--@end-->
  </td>
    </tr>
        <
!--@endif-->
    <
!--@endforeach-->
    </table>
    <
!--@endif
-->

6.  modules/board/skins/xe_board/view_document.html
      line  67 부분에           소스를 추가 합니다.

<!--@foreach($module_info->extra_vars as $key => $val)-->
            <
!--@if($val->name)-->
        <tr>
            <th scope="row">
   
<!--@if($grant->manager && $val->grant_type=='admin_to_admin')-->
   {$val->name}
   <
!--@elseif($oDocument->isEditable() && $val->grant_type=='all_to_admin')-->
   {$val->name}
   <
!--@elseif($val->grant_type=='all_to_all' || $val->grant_type=='admin_to_all')-->
   {$val->name}
  
 <!--@end-->
   </th>
            <td>
                <!--// 확장변수(extra_var)의 type에 따른 값을 출력하기 위해서 특별히 제작된 파일을 include 한다 -->
    
<!--@if($grant->manager && $val->grant_type=='admin_to_admin')-->
                <!--#include("./extra_var_value.html")-->
    <
!--@elseif($oDocument->isEditable() && $val->grant_type=='all_to_admin')-->
    <!--#include("./extra_var_value.html")-->
    <
!--@elseif($val->grant_type=='all_to_all' || $val->grant_type=='admin_to_all')-->
    <!--#include("./extra_var_value.html")-->
    
<!--@end-->
            </td>
        </tr>
            <
!--@end-->
        <
!--@end-->
        </table>
        <
!--@end
-->

제목 글쓴이 날짜
통합검색 사용 가부 설정 및 특정 그룹만 사용가능하게 제한 설정 기능 추가 - 보안이슈가 될 수 있는 부분 [1] sejin7940 2015.04.10
요청한 기능을 실행할 수 있는 권한이 없습니다. - 오류해결 file I-JEX 2015.04.10
DB LOCK으로 인한 사이트 마비와 사례, 조치 [2] onTrust 2015.01.24
문서권한 지정 애드온 1.7에서 동작하게 [2] socialskyo 2015.01.17
[시니시즘] 비회원에게 파일 다운로드 권한이 없다고 뜰 때 시니시즘 2015.01.15
레이아웃 작업 중 갑자기 files/faceOFF/xxx/ko.cache.php 에러 발생할 시 Novelic 2014.09.19
익명게시판에서 관리자가 글 수정시 글의 권한이 넘어가지 않도록 하기. [5] 소시덕분에힘받아요 2014.06.11
홈페이지 제작 시, 개인정보관련/회원가입약관 처리에 대해서 [1] 양파F 2014.08.23
CafeXE (homepage 모듈) 메뉴노출 권한오류 수정안. Xiso 2014.08.22
게시판의 관리자가 최고관리자의 글을 지울 수 없도록 하기 [1] file BJ람보 2014.08.18
글읽기 권한 없을때 회원가입창으로 유도하는 방법 (XE1.5수정) [10] sejin7940 2011.08.23
XE 설치 시 안전한 폴더권한 설정하기 (chown 사용) 컴토피아 2014.08.07
XE를 사용중 백지현상이 있을경우 체크해볼 요소 [2] jambox 2014.02.08
[140404] ISPconfig 호스팅 관리 패널 Luatic™ 2012.06.24
XE 업데이트후 갑자기 CSS/JS등이 403 오류가 날때 YJSoft 2014.04.16
장비 침입 탐지 및 자동 ip 차단 프로그램 소개 [4] 고구마군 2014.04.09
NULL/XMAS 패킷 포트 스캐닝 방지 방안 고구마군 2014.04.12
XE 첨부파일 문제로 게시판이 백지화 될때... [1] 똑디 2011.05.20
레이아웃 위젯 권한 넣기 [14] 해피해킹 2011.04.12
IPGUARD 모듈 배포 [33] file 우진홈 2013.07.10