차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:xe [2015/02/28 01:42] – [훌륭한 로긴 방식] V_Ltech:xe [2016/07/12 09:26] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{tag>tech xe 네이버 xpressionengine}}
 ======Xpressengine (XE)====== ======Xpressengine (XE)======
  
줄 4: 줄 5:
  
 http://www.xpressengine.com/ http://www.xpressengine.com/
- 
- 
- 
  
  
줄 19: 줄 17:
 [[http://www.google.co.kr/search?sourceid=chrome&ie=UTF-8&q=xe+session+%EC%82%AD%EC%A0%9C#sclient=psy-ab&hl=ko&newwindow=1&safe=off&source=hp&q=xe+session+%ED%85%8C%EC%9D%B4%EB%B8%94+-%EA%B3%B5%EC%9C%A0&psj=1&oq=xe+session+%ED%85%8C%EC%9D%B4%EB%B8%94+-%EA%B3%B5%EC%9C%A0&aq=f&aqi=&aql=&gs_sm=e&gs_upl=7087l8716l3l9059l7l7l0l7l0l0l0l0ll0l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=9d240990a75e031f&biw=1113&bih=916|세션 테이블  구글검색]] [[http://www.google.co.kr/search?sourceid=chrome&ie=UTF-8&q=xe+session+%EC%82%AD%EC%A0%9C#sclient=psy-ab&hl=ko&newwindow=1&safe=off&source=hp&q=xe+session+%ED%85%8C%EC%9D%B4%EB%B8%94+-%EA%B3%B5%EC%9C%A0&psj=1&oq=xe+session+%ED%85%8C%EC%9D%B4%EB%B8%94+-%EA%B3%B5%EC%9C%A0&aq=f&aqi=&aql=&gs_sm=e&gs_upl=7087l8716l3l9059l7l7l0l7l0l0l0l0ll0l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=9d240990a75e031f&biw=1113&bih=916|세션 테이블  구글검색]]
  
-접속자도 별로 없는데 +접속자도 별로 없는데
  
 세션 테이블의 레코드 수가 백만개!!. 세션 테이블의 레코드 수가 백만개!!.
  
 자동으로 정리 하도록 할 수 없나. 자동으로 정리 하도록 할 수 없나.
- 
- 
  
  
줄 32: 줄 28:
 XE에서만 사용되는 **XE 전용**의 웹 프로그래밍 언어라고 생각하면 된다. XE에서만 사용되는 **XE 전용**의 웹 프로그래밍 언어라고 생각하면 된다.
 이 스크립트는 layout.html(이하 '템플릿 파일'이라고 칭함) 파일 안에서 사용된다. 이 스크립트는 layout.html(이하 '템플릿 파일'이라고 칭함) 파일 안에서 사용된다.
- +
 모든 언어에는 그 들만의 규칙이 있으므로, 모든 언어에는 그 들만의 규칙이 있으므로,
 그 규칙에 맞게 작성해야만 정상적인 작동을 한다. 그 규칙에 맞게 작성해야만 정상적인 작동을 한다.
- +
 ====XE 템플릿 스크립트에서 PHP문의 사용==== ====XE 템플릿 스크립트에서 PHP문의 사용====
- +
 XE 템플릿 스크립트는 PHP와 유사하지만, 분명 PHP는 아니다. XE 템플릿 스크립트는 PHP와 유사하지만, 분명 PHP는 아니다.
 그렇기때문에 템플릿 스크립트에서는 PHP를 //대충// 사용할 수 있는 방법을 제공하고 있다. 그렇기때문에 템플릿 스크립트에서는 PHP를 //대충// 사용할 수 있는 방법을 제공하고 있다.
줄 44: 줄 40:
     {@$test = 365}     {@$test = 365}
  
-이 문장은 '변수 $test 에 365 라는 값을 입력하라' 라는 의미이다. +이 문장은 '변수 $test 에 365 라는 값을 입력하라' 라는 의미이다.
  
   {@   {@
줄 53: 줄 49:
 이 문장은 '변수 $test 에 200 이라는 값을 입력하고, $test에 입력된 값(200) 과 165 을 더해서 변수 $managed 에 입력하라' 이 문장은 '변수 $test 에 200 이라는 값을 입력하고, $test에 입력된 값(200) 과 165 을 더해서 변수 $managed 에 입력하라'
 라는 의미이다. 라는 의미이다.
- +
 첫번째 예제와 두번 째 예제의 사이에는 커다란 차이점이 있다. 첫번째 예제와 두번 째 예제의 사이에는 커다란 차이점이 있다.
 첫번째 예제는 PHP에서 단 한문장으로 끝날 수 있는 부사람이지만 첫번째 예제는 PHP에서 단 한문장으로 끝날 수 있는 부사람이지만
 두번째 예제는 PHP에서 세미콜론(;)를 사용하여 두 개의 문장으로 작성되야 한다. 두번째 예제는 PHP에서 세미콜론(;)를 사용하여 두 개의 문장으로 작성되야 한다.
- +
 이렇게 2 문장 이상일 경우에는 PHP와 달리 두번째 예제와 같이 **여러 줄에 걸쳐서 입력**해야 한다. 이렇게 2 문장 이상일 경우에는 PHP와 달리 두번째 예제와 같이 **여러 줄에 걸쳐서 입력**해야 한다.
-아래와 같은 코드는 템플릿 스크립트에서 정상적으로 작동되지 않다. +아래와 같은 코드는 템플릿 스크립트에서 정상적으로 작동되지 않다.
  
     {@$test = 200; $managed = $test + 165} (X)     {@$test = 200; $managed = $test + 165} (X)
  
 ====XE 템플릿 스크립트에서 변수의 사용==== ====XE 템플릿 스크립트에서 변수의 사용====
- +
 템플릿 스크립트에서는 별도의 변수 선언문이 없다. 템플릿 스크립트에서는 별도의 변수 선언문이 없다.
-그렇기때문에 변수를 사용하기 위해서는 위에서 본 PHP문 사용 방법을 통해 변수를 선언해야 한다. +그렇기때문에 변수를 사용하기 위해서는 위에서 본 PHP문 사용 방법을 통해 변수를 선언해야 한다.
  
    {@$var = 0}    {@$var = 0}
  
 '변수 $var 를 선언하고 초기값으로 0을 입력하라' 라는 의미이다. '변수 $var 를 선언하고 초기값으로 0을 입력하라' 라는 의미이다.
-  + 
-다음과 같이 사용할 수도 있다. +다음과 같이 사용할 수도 있다.
   {@   {@
     $var1 = 10;     $var1 = 10;
줄 80: 줄 76:
   }   }
  
- +변수값을 출력을 하기 위해서는 { 와 } 사이에 변수를 입력해주면 된다.
-변수값을 출력을 하기 위해서는 { 와 } 사이에 변수를 입력해주면 된다. +
  
 {$var4} {$var4}
줄 89: 줄 84:
  
 ====IF 조건문의 사용==== ====IF 조건문의 사용====
-  + 
-if문 또한 C 언어나 PHP 등과 유사한 모습으로 사용된다. 아래는 기본 코드이다. +if문 또한 C 언어나 PHP 등과 유사한 모습으로 사용된다. 아래는 기본 코드이다.
   <!--@if(조건식)-->   <!--@if(조건식)-->
- +
 조건이 만족되면 이 부분을 실행한다. 조건이 만족되면 이 부분을 실행한다.
  
   <!--@elseif(조건식)-->   <!--@elseif(조건식)-->
- +
 첫번 째 조건이 만족되지 않고 첫번 째 조건이 만족되지 않고
 elseif 의 조건식을 검토하여 만족될 경우 이 곳이 실행된다. elseif 의 조건식을 검토하여 만족될 경우 이 곳이 실행된다.
  
   <!--@else-->   <!--@else-->
- +
 모든 조건이 만족되지 않을 경우에는 이 곳이 실행된다. 모든 조건이 만족되지 않을 경우에는 이 곳이 실행된다.
  
   <!--@end-->   <!--@end-->
- +
 end 는 if문의 끝을 의미한다. end 는 if문의 끝을 의미한다.
-그러면 if문의 예제를 하나 들어보겠다. +그러면 if문의 예제를 하나 들어보겠다.
   {@   {@
     $var = 1;     $var = 1;
줄 113: 줄 108:
     $community = 3     $community = 3
   }   }
-   +
   <!--@if($var == $webhosting)-->   <!--@if($var == $webhosting)-->
   <p>웹호스팅에 오신 것을 환영한다</p>   <p>웹호스팅에 오신 것을 환영한다</p>
줄 127: 줄 122:
  
 라는 문장이 출력될 것 이다. 라는 문장이 출력될 것 이다.
- +
 ====foreach 반복문의 사용==== ====foreach 반복문의 사용====
- +
 템플릿 스크립트의 foreach도 PHP의 foreach와 동일한 동작을 한다. 템플릿 스크립트의 foreach도 PHP의 foreach와 동일한 동작을 한다.
 기본 코드는 아래와 같다. 기본 코드는 아래와 같다.
  
   <!--@foreach($배열변수 as $key => $value)-->   <!--@foreach($배열변수 as $key => $value)-->
-   +
   반복 실행될 문장   반복 실행될 문장
-   +
   <!--@end-->   <!--@end-->
  
-다음과 같은 배열이 있다고 가정해 보겠다. +다음과 같은 배열이 있다고 가정해 보겠다.
   {@$a = array("one"=>1, "two"=>2, "three"=>3, "etc"=>365)}   {@$a = array("one"=>1, "two"=>2, "three"=>3, "etc"=>365)}
-그러면 다음과 같은 코드를 이용하여 키와 값을 출력할 수 있다. +그러면 다음과 같은 코드를 이용하여 키와 값을 출력할 수 있다.
   <!--@foreach($a as $key => $value)-->   <!--@foreach($a as $key => $value)-->
-   +
   <p>$a[{$key}]의 값은 {$value} 이다</p>   <p>$a[{$key}]의 값은 {$value} 이다</p>
-   +
   <!--@end-->   <!--@end-->
- +
 출력결과는 아래와 같다. 출력결과는 아래와 같다.
   $a[one]의 값은 1 이다.   $a[one]의 값은 1 이다.
줄 155: 줄 150:
  
 ====파일의 삽입==== ====파일의 삽입====
- +
 하나의 템플릿 파일을 여러 개로 나누어서 분리한 후 하나의 템플릿 파일을 여러 개로 나누어서 분리한 후
 include 를 이용하여 하나로 합칠 수 있다. include 를 이용하여 하나로 합칠 수 있다.
-기본 코드는 아래와 같다. +기본 코드는 아래와 같다.
  
    <!--#include('파일경로')-->    <!--#include('파일경로')-->
줄 164: 줄 159:
 주의할 것은 include 문을 이용하여 PHP 파일을 불러와도 PHP로 해석되지 않다. 주의할 것은 include 문을 이용하여 PHP 파일을 불러와도 PHP로 해석되지 않다.
 템플릿 스크립트의 include 는 분할된 XE템플릿 파일을 include 할 뿐 이다. 템플릿 스크립트의 include 는 분할된 XE템플릿 파일을 include 할 뿐 이다.
- +
 ====CSS/자바스크립트와의 연결==== ====CSS/자바스크립트와의 연결====
-  + 
-CSS나 자바스크립트를 사용하기 위해서는 아래 코드를 사용한다. +CSS나 자바스크립트를 사용하기 위해서는 아래 코드를 사용한다.
    <!--%import(파일경로)-->    <!--%import(파일경로)-->
 이렇게 import 된 파일은 **선언된 위치에 상관없이** HTML의 <head> 안에 자동으로 삽입된다. 이렇게 import 된 파일은 **선언된 위치에 상관없이** HTML의 <head> 안에 자동으로 삽입된다.
- +
 XML JS Filter의 적용 방법도 CSS/자바스크립트와의 연결 방법과 같다. XML JS Filter의 적용 방법도 CSS/자바스크립트와의 연결 방법과 같다.
- 
  
  
줄 180: 줄 174:
   <span cond="!Mobile::isMobileCheckByAgent()">모바일모드가 아니다.</span>   <span cond="!Mobile::isMobileCheckByAgent()">모바일모드가 아니다.</span>
 ===== 변수===== ===== 변수=====
- 
  
  
 ====접속자 정보==== ====접속자 정보====
 http://www.xeschool.com/xe/xenote_useful_variable_logged_info http://www.xeschool.com/xe/xenote_useful_variable_logged_info
- 
  
 ^  접속자 정보  ^  설명  ^ ^  접속자 정보  ^  설명  ^
줄 232: 줄 224:
       * grps — groups the user belongs to (Array )       * grps — groups the user belongs to (Array )
       * buid — a special id constructed from details of the user's browser and IP address       * buid — a special id constructed from details of the user's browser and IP address
- 
  
 xe의 그룹 구조 xe의 그룹 구조
줄 244: 줄 235:
 ===== 훌륭한 로긴 방식===== ===== 훌륭한 로긴 방식=====
 http://www.xpressengine.com/tip/16724404 http://www.xpressengine.com/tip/16724404
- 
  
 http://bb.vaslor.net/index.php?module=loginxeclient&act=dispLoginxeclientOAuth&provider=naver http://bb.vaslor.net/index.php?module=loginxeclient&act=dispLoginxeclientOAuth&provider=naver
 +
 +템플릿에
 +
 +  <p><a href="{getUrl('','module','loginxeclient','act','dispLoginxeclientOAuth','provider','naver')}">네이버계정으로 로그인</a></p>
 +
 +추가.
 +
 ====socialxe==== ====socialxe====
  
줄 276: 줄 273:
 그러니까 그러니까
  
-  * dispMemberLoginForm 로그인  [[http://vaslor.net/bb/?act=dispMemberLoginForm]]+  * dispMemberLoginForm 로그인  [[http://openwiki.kr/bb/?act=dispMemberLoginForm]]
   * dispMemberInfo 마이페이지   * dispMemberInfo 마이페이지
   * dispMemberOwnDocument 내글   * dispMemberOwnDocument 내글
줄 283: 줄 280:
   * dispCommunicationMessages 쪽지함   * dispCommunicationMessages 쪽지함
  
-등등 실제 주소에서 http://www.abc.com/?mid=index&act=dispCommunicationMessages +등등 실제 주소에서 http://www.abc.com/?mid=index&act=dispCommunicationMessages
  
 ====모듈정보==== ====모듈정보====
줄 297: 줄 294:
 |메세지 출력| dispBoardMessage| message.html| |메세지 출력| dispBoardMessage| message.html|
 |비밀번호 입력| input_password_form.html| |비밀번호 입력| input_password_form.html|
- 
  
 |회원 정보 보기| member_info| dispMemberInfo                            | |회원 정보 보기| member_info| dispMemberInfo                            |
줄 309: 줄 305:
 |로그아웃| dispMemberLogout| logout                                     | |로그아웃| dispMemberLogout| logout                                     |
 |저장된 글 목록 (pop)| dispSavedDocumentList| saved_list_popup          | |저장된 글 목록 (pop)| dispSavedDocumentList| saved_list_popup          |
- 
  
  
줄 318: 줄 313:
 |인증메일 재발송| dispMemberResendAuthMail| resend_auth_mail                   | |인증메일 재발송| dispMemberResendAuthMail| resend_auth_mail                   |
 |임시 비밀번호| dispMemberGetTempPassword| find_temp_password                  | |임시 비밀번호| dispMemberGetTempPassword| find_temp_password                  |
- 
- 
  
  
줄 328: 줄 321:
 회원 정보를 메일로 찾을 때 회원 정보를 메일로 찾을 때
 communication 모듈 communication 모듈
- 
  
  
줄 345: 줄 337:
  
 ====속도==== ====속도====
- 
  
 글 등록시에만 등록속도가 현저히 떨어진다면 글 등록시에만 등록속도가 현저히 떨어진다면
-캐쉬 문제일 가능성이 있다. +캐쉬 문제일 가능성이 있다.
  
 files 폴더에 cache_123456789 라는 폴더가 쌓여있는지 먼저 확인해보고 files 폴더에 cache_123456789 라는 폴더가 쌓여있는지 먼저 확인해보고
줄 357: 줄 348:
 이처럼 cache_ 숫자 가 있는 폴더를 정리 해야된다. 이처럼 cache_ 숫자 가 있는 폴더를 정리 해야된다.
  
-그렇다고 무작정 다 지우게 되면 사이트에 문가 발생하니 +그렇다고 무작정 다 지우게 되면 사이트에 문가 발생하니
 cache_123456789 폴더를 백업하고 cache_123456789를 하나씩지우면서 cache_123456789 폴더를 백업하고 cache_123456789를 하나씩지우면서
 테스트 를 해보기를 권장한다. 테스트 를 해보기를 권장한다.
줄 377: 줄 368:
 첫째는 xe.min.css 파일을 아예 로드하지 않는 방법이다. 첫째는 xe.min.css 파일을 아예 로드하지 않는 방법이다.
 둘째는 파일이 로드된 뒤에 지우는 방식이다. 둘째는 파일이 로드된 뒤에 지우는 방식이다.
-====기본 URL 설정이 안 되어 있습니다.====+====기본 URL 설정이 안 되어 있다.====
  
-아마 각종 해킹에 대한 보안대책의 하나로 현재의 서버 정보와 지정된 주소가 다르면 에러를 뿜는 것으로 보인다. +아마 각종 해킹에 대한 보안대책의 하나로 현재의 서버 정보와 지정된 주소가 다르면 에러를 뿜는 것으로 보인다.
  
 일반-설정-고급-기본 URL을 지정해서 해결 되는 경우도 있으나, 일반-설정-고급-기본 URL을 지정해서 해결 되는 경우도 있으나,
줄 394: 줄 385:
 <file php>if($host && ($host != $defaultHost && $host != $site_module_info->domain)) <file php>if($host && ($host != $defaultHost && $host != $site_module_info->domain))
 { {
-  // throw new Exception('msg_default_url_is_null'); // 이걸 주석처리.. +  // throw new Exception('msg_default_url_is_null'); // 이걸 주석처리..
 }</file> }</file>
  
줄 401: 줄 392:
   http://bb.openwiki.kr/index.php?module=document&act=dispDocumentPrint&document_srl=47716&mid=tech   http://bb.openwiki.kr/index.php?module=document&act=dispDocumentPrint&document_srl=47716&mid=tech
   http://www.ilbe.com/index.php?module=document&act=dispDocumentPrint&document_srl=5286110344   http://www.ilbe.com/index.php?module=document&act=dispDocumentPrint&document_srl=5286110344
 +=====사용자 관리=====
 +
 +권한관리 설정하기
 +게시판에 대한 권한 관리에는 다음과 같이 여러개로 나뉩니다.
 +
 +  * 접근 권한 : 게시판에 접근할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다.
 +  * 목록 : 게시판 목록을 볼수 있는 권한을 각 회원 그룹별로 지정할 수 있다.
 +  * 열람 : 게시판 상세내용을 볼수 있는 권한을 각 회원 그룹별로 지정할 수 있다.
 +  * 글 작성 : 게시판에 글을 등록할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다.
 +  * 댓글 작성 : 게시판에 댓글을 등록할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다.
 +  * 관리 권한 : 게시판을 관리 할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다.
 +
 +관리 권한으로 설정된 그룹에 속한 회원들은 해당 게시판의 글을 마음대로 삭제하고, 수정할 수 있기 때문에
 +신중하게 설정해야 한다.
 +
 =====참고자료===== =====참고자료=====
  
-  - SOL님의 SMS로 XE 게시판에 글쓰기 http://sol.textyle.kr/23984  +  - SOL님의 SMS로 XE 게시판에 글쓰기 http://sol.textyle.kr/23984 
-  - 뎅ㅇㅣ님의 XE - JSON 모듈 만들기 http://wannabewize.tistory.com/89 +  - 뎅ㅇㅣ님의 XE - JSON 모듈 만들기 http://wannabewize.tistory.com/89
   - Hide_D님 board.api.php 사용법 http://www.xpressengine.com/18405009   - Hide_D님 board.api.php 사용법 http://www.xpressengine.com/18405009
  
  
-{{tag>tech xe 네이버 xpressionengine}}