메뉴 건너뛰기

MH

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

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

조회 수 227 추천 수 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
번호 분류 제목 원작자 날짜 조회 수 적용여부
244 문하우스 Xedition 레이아웃 스킨에서 검색버턴 바꾸기 file 80san 2018.10.31 100 적용
243 문하우스 xedition레이아웃과 sketchbook5 게시판을 같이 사용시 미미한 문제점수정 file 80san 2018.10.27 108 적용
242 문하우스 구글 드라이브 자료링크를 XE게시판에 적용하는 방법 file 80san 2018.09.25 227 적용
241 XE타운 게시판 사용자정의 일자(연월일)에 시간 추가하는 방법 file sunup 2018.09.03 156 NO
240 XE타운 PC, 모바일, Tab 접속장치 구분 코드 file misol 2018.08.03 141 적용
239 XE타운 마지막 문장 이후 오는 <p> </p> 를 모두 제거해서 보여주는 방법 prologos 2018.07.28 87 적용
238 문하우스 구글 웹사이트 번역기 웹페이지에 간단하게 달기 file 80san 2018.07.27 383 NO
237 문하우스 이미지 Hover시 Zoom기능 출력 file 80san 2018.07.25 112 적용
236 기타 XE 위젯에 임시 저장글이 뜰때 해결방법 file 잡다한 생각 2018.07.13 58 적용
» 문하우스 외부링크 파일을 로그인회원만 확장변수활용 다운받게 하는 방법 file plruto 2018.02.17 227 적용
234 문하우스 Ckeditor에 스킨 설치하는 방법 file 80san 2018.02.13 388 NO
233 문하우스 Ckeditor에 플러그인 설치하는 방법 1 file 80san 2018.02.11 691 적용
232 문하우스 댓글유도문구에 에니메이션 효과 적용 80san 2018.01.31 180 적용
231 문하우스 "소셜XE 2015 모듈" 사용중 API 오류 나는 경우 file 80san 2018.01.31 172 적용
230 문하우스 위젯을 가로로 정렬했을때 모바일에서 반응형으로 적용하기 file 80san 2018.01.29 306 적용
229 XE타운 10원짜리 깜빡이로 강조하기 팁 file 웹지기 2018.01.29 106
228 문하우스 SoSiFam 한 줄 메모 게시판 라이믹스에서 사용 가능하게 편집 2 file 80san 2018.01.27 151 적용
227 문하우스 라이믹스에서 내용글 없이 글 작성하기 file 80san 2018.01.27 164 적용
226 문하우스 문하우스의 라이믹스 업데이트 여정 5 file 2018.01.27 340
225 XE타운 간단한 게시물 주소 복사 버튼 달기 5 file 돼둥이 2018.01.22 294 적용
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

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