메뉴 건너뛰기

MH

내 사랑치 않고 끝내는 것 보다 사랑해서 잃어 버리는 편이 좋다.

It is better to have loved and lost than to have never loved at all.

조회 수 211 추천 수 0 댓글 0
Extra Form
원작자 plruto
출처 https://www.xpressengine.com/tip/20004481
적용여부 적용
적용페이지 https://moonhouse.co.kr/407888

유틸리티 메뉴의 작성글들중 프로그램용량이 큰 자료의 경우 외부에서 파일을 가져와서 링크를 걸어 두었는데

이런 경우는 게시판의 파일권한과 상관 없이 다운로드가 가능했습니다.

그런 이유로 로그인한 회원만 자료를 다운받게 할려고 

글 작성란에 XE의 문법을 사용해 보니 보안상의 이유로 안 된답니다.

https://xetown.com/qna/895519

 

그래서 게시판 확장변수를 이용해서 로그인회원과 비로그인회원을 구별해서 외부자료를 다운받게 만들었습니다.

먼저 sketchbook5 게시판을 이용해서 만들었습니다.

 

스케치북게시판에는 "본문 일반 설정"에 "확장변수 위치"란 설정이 있습니다.

img_001.jpg

기본 게시판 skin.xml 파일안에는 아래와 같이 2개의 선택만이 있습니다.

<var name="et_var" type="radio">
    <title xml:lang="ko">확장변수 위치</title>
    <options value="">
        <title xml:lang="ko">본문 안에(기본)</title>
    </options>
    <options value="2">
        <title xml:lang="ko">제목 아래</title>
    </options>
</var>   

그런데 _read.html 파일안에는 총3군데의 확장변수 위치가 있습니다.

위에 처럼 "본문안에(기본)" 와 "제목아래" 그리고 본문 하단에 한군데가 더 있습니다.

그래서 저는 아래와 같이 수정했습니다.

<var name="et_var" type="radio">
    <title xml:lang="ko">확장변수 위치</title>
    <options value="">
        <title xml:lang="ko">본문 안에(기본)</title>
    </options>
    <options value="1">
        <title xml:lang="ko">제목 아래</title>
    </options>
    <options value="2">
        <title xml:lang="ko">본문 하단</title>
    </options>
</var>

그리고 _read.html 파일안에 코드를 보면 어떤 경우이던 "본문 안에"는 항상 출력됩니다.

그래서 저는 3군데중 지정한 곳만 나오게 수정했습니다.

<!--// Extra Var : Header -->
<table cond="$mi->et_var=='1'

- 생략 - 

<!--// Body -->
<div class="rd_body clear">
  <!--// Extra Var -->
  <block cond="!$mi->extravar_print">
    <table cond="$mi->et_var==''

- 생략 -

<!--// Extra Var : content_footer -->
<block cond="!$mi->extravar_print">
  <table cond="$mi->et_var=='2' 

 

그런 다음 skin.xml 파일안에 로그인한 회원이 다운받을 URL 이 적혀 있는 확장변수의 입력항목이름 부분을 추가하는 설정을 했습니다.

<var name="et_logon_name" type="text">
    <title xml:lang="ko"> ┖ 본문 하단 로그인후 파일 다운 확장변수 입력항목이름</title>
    <description xml:lang="ko">로그인후 파일 다운 확장변수 입력항목이름을 적어주세요.</description>
</var> 

 

그리고 _read.html 파일안에 "본문 하단" 확장변수부분을 아래와 같이 수정합니다.

<!--// Extra Var : content_footer -->
<block cond="!$mi->extravar_print">
    <table cond="$mi->et_var=='2' && $oDocument->isExtraVarsExists() && (!$oDocument->isSecret() || $oDocument->isGranted())" class="et_vars bd_tb">
        <caption class="blind">Extra Form</caption>
        <tr loop="$oDocument->getExtraVars() => $key,$val" cond="$val->getValueHTML() && $val->eid!='rd_preview'">

        

         <!--@if($val->name==$mi->et_logon_name)-->
            <!--@if($logged_info)-->
                <a href="#toggleExtraVars" class="btn">다운로드</a>
                <div id="toggleExtraVars">
                {$val->getValueHTML()}
                </div>
                <script type="text/javascript">
                jQuery.noConflict();
                jQuery(function($){ 
                    $('#toggleExtraVars').hide();
                    $('a[href=#toggleExtraVars]').click(function(){
                        $($(this).attr('href')).toggle();
                        return false;
                    });
                });
                </script>
            <!--@else-->
                <p><a href="#" onclick='javascript:alert("회원가입 로그인후 다운로드가 가능합니다.");'>"회원가입 로그인후 다운로드가 가능합니다"</a></p>
            <!--@end-->
        <!--@else-->

            <th scope="row">{$val->name}</th>
                <td cond="$val->eid!='rating'&&$val->eid!==$mi->etc_name">{$val->getValueHTML()}</td>
                <td cond="$val->eid!='rating'&&($mid==$mi->etc_mid&&$val->eid==$mi->etc_name)">{$mi->f_name} {number_format(str_replace(',','',$val->getValueHTML()))}{$mi->b_name}</td>
                <td cond="$val->eid=='rating'&&$val->eid!==$mi->etc_name" class="rating"><span class="starRating" title="{$val->getValueHTML()}{$lang->score}"><span style="width:{$val->getValueHTML()*10}%">{$val->getValueHTML()}</span></span></td>
        <!--@end-->
        </tr>
    </table>
</block>
 

그럼 게시판 파일수정은 다 되었습니다.

 

게시판 설정의  "사용자 정의"에서 외부파일 다운로드 URL을 작성할 수 있는 확장변수를 하나 만들고 임의의 "입력항목 이름"을 정합니다.(예:다운로드)

img_002.jpg

확장변수를 만든 후 "스킨 관리"에 들어가서 "확장변수 위치"를 본문 하단으로 선택하고

"본문 하단 로그인후 파일 다운 확장변수 입력항목 이름"에 다운로드를 적어줍니다.

img_001.jpg

그럼 모든 설정은 끝이 났습니다.

 

게시글 작성에서 확장변수란에 외부파일 다운로드 경로를 적어주시면 

로그인한 회원은 "다운로드"버턴을 클릭하면 토글로 하단에 다운로드 경로가 보이며,

비로그인한 분은 "회원가입 로그인후 다운로드가 가능합니다"란 문구를 볼 수 있습니다.

 

적용페이지에 가 보시면 어떻게 작동되는지 아실 수 있습니다.

저는 버턴대신 이미지로, pr_tooltip 애드온을 이용했습니다. 

https://moonhouse.co.kr/407878

 

[로그인]

img_003.jpg

 

[비로그인}

img_004.jpg

Who's 팔공산

profile

이 世上에서 現在가 가장 중요한 時間이며,
내가 만나고 있는 바로 그 사람이 第一 중요한 사람이며,
同時에 가장 중요한 것은 그 사람에게 善으로서 行하는 것이다.

Atachment
첨부 '4'
    댓글이 하나도 없네요ㅠㅠ
    Tip이 도움이 되었다면 댓글과 평가 부탁합니다. Tip에 대한 궁금한 점은 댓글로 남겨 주시면 성심껏 답변 드립니다.
?

List of Articles
번호 분류 제목 원작자 날짜 조회 수 적용여부
252 문하우스 게시판으로 간단한 거래장부 만들기 file 80san 2019.03.27 150 NO
251 문하우스 호스팅 이전 하면서 /xe 떼고 SSL설치한 경험기 입니다. file 80san 2019.03.16 125 적용
250 문하우스 게시글보기 링크문구 바로가기 아이콘 출력 file 80san 2019.02.23 184 적용
249 문하우스 게시판 글쓰기시 Tag부분 출력 유무 설정방법 file 80san 2019.02.17 50 적용
248 문하우스 "드래그하여 페이지/문서 이동 애드온" 적용팁 5 file 80san 2019.02.14 114 적용
247 XE타운 XE 위젯을 반응형으로 적용하자 file 도토리묵 2018.12.31 119 변형
246 XE타운 댓글이 2줄 이상일 경우 접고 펴는 기능추가하기 file 이온디 2018.11.27 86 변형
245 문하우스 Sketchbook5 게시판 글작성시 상단에 빵조각메뉴 부분 삭제하기 file 80san 2018.11.02 106 적용
244 문하우스 Xedition 레이아웃 스킨에서 검색버턴 바꾸기 file 80san 2018.10.31 75 적용
243 문하우스 xedition레이아웃과 sketchbook5 게시판을 같이 사용시 미미한 문제점수정 file 80san 2018.10.27 83 적용
242 문하우스 구글 드라이브 자료링크를 XE게시판에 적용하는 방법 file 80san 2018.09.25 156 적용
241 XE타운 게시판 사용자정의 일자(연월일)에 시간 추가하는 방법 file sunup 2018.09.03 111 NO
240 XE타운 PC, 모바일, Tab 접속장치 구분 코드 file misol 2018.08.03 102 적용
239 XE타운 마지막 문장 이후 오는 <p> </p> 를 모두 제거해서 보여주는 방법 prologos 2018.07.28 70 적용
238 문하우스 구글 웹사이트 번역기 웹페이지에 간단하게 달기 file 80san 2018.07.27 168 NO
237 문하우스 이미지 Hover시 Zoom기능 출력 file 80san 2018.07.25 88 적용
236 기타 XE 위젯에 임시 저장글이 뜰때 해결방법 file 잡다한 생각 2018.07.13 29 적용
» 문하우스 외부링크 파일을 로그인회원만 확장변수활용 다운받게 하는 방법 file plruto 2018.02.17 211 적용
234 문하우스 Ckeditor에 스킨 설치하는 방법 file 80san 2018.02.13 316 NO
233 문하우스 Ckeditor에 플러그인 설치하는 방법 1 file 80san 2018.02.11 525 적용
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

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