찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Xpressengine (XE)====== 오픈소스 CMS. 현재는 네이버 산하 오픈소스 프로젝트로 개발이 진행되고 있다. http://www.xpressengine.com/ 세션 정보를 파일이 아닌 DB를 이용하는 것에 대한 논의 http://xe.xpressengine.net/?document_srl=16803825 세션 테이블 때문에 문제라는 많은 글들 [[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|세션 테이블 구글검색]] 접속자도 별로 없는데 세션 테이블의 레코드 수가 백만개!!. 자동으로 정리 하도록 할 수 없나. =====XE 템플릿 스크립트===== XE에서만 사용되는 **XE 전용**의 웹 프로그래밍 언어라고 생각하면 된다. 이 스크립트는 layout.html(이하 '템플릿 파일'이라고 칭함) 파일 안에서 사용된다. 모든 언어에는 그 들만의 규칙이 있으므로, 그 규칙에 맞게 작성해야만 정상적인 작동을 한다. ====XE 템플릿 스크립트에서 PHP문의 사용==== XE 템플릿 스크립트는 PHP와 유사하지만, 분명 PHP는 아니다. 그렇기때문에 템플릿 스크립트에서는 PHP를 //대충// 사용할 수 있는 방법을 제공하고 있다. 템플릿 파일내에서 {@ 와 } 사이에 나오는 문장은 PHP문으로 해석한다. {@$test = 365} 이 문장은 '변수 $test 에 365 라는 값을 입력하라' 라는 의미이다. {@ $test = 200; $managed = $test + 165 } 이 문장은 '변수 $test 에 200 이라는 값을 입력하고, $test에 입력된 값(200) 과 165 을 더해서 변수 $managed 에 입력하라' 라는 의미이다. 첫번째 예제와 두번 째 예제의 사이에는 커다란 차이점이 있다. 첫번째 예제는 PHP에서 단 한문장으로 끝날 수 있는 부사람이지만 두번째 예제는 PHP에서 세미콜론(;)를 사용하여 두 개의 문장으로 작성되야 한다. 이렇게 2 문장 이상일 경우에는 PHP와 달리 두번째 예제와 같이 **여러 줄에 걸쳐서 입력**해야 한다. 아래와 같은 코드는 템플릿 스크립트에서 정상적으로 작동되지 않다. {@$test = 200; $managed = $test + 165} (X) ====XE 템플릿 스크립트에서 변수의 사용==== 템플릿 스크립트에서는 별도의 변수 선언문이 없다. 그렇기때문에 변수를 사용하기 위해서는 위에서 본 PHP문 사용 방법을 통해 변수를 선언해야 한다. {@$var = 0} '변수 $var 를 선언하고 초기값으로 0을 입력하라' 라는 의미이다. 다음과 같이 사용할 수도 있다. {@ $var1 = 10; $var2 = 20; $var3 = 30; $var4 = $var1 + $var2 + $var3 } 변수값을 출력을 하기 위해서는 { 와 } 사이에 변수를 입력해주면 된다. {$var4} 이렇게하면 '변수 $var4의 값을 출력하라' 라는 의미가 된다. 여기서는 60 이라는 값이 출력된다. ====IF 조건문의 사용==== if문 또한 C 언어나 PHP 등과 유사한 모습으로 사용된다. 아래는 기본 코드이다. <!--@if(조건식)--> 조건이 만족되면 이 부분을 실행한다. <!--@elseif(조건식)--> 첫번 째 조건이 만족되지 않고 elseif 의 조건식을 검토하여 만족될 경우 이 곳이 실행된다. <!--@else--> 모든 조건이 만족되지 않을 경우에는 이 곳이 실행된다. <!--@end--> end 는 if문의 끝을 의미한다. 그러면 if문의 예제를 하나 들어보겠다. {@ $var = 1; $webhosting = 2; $community = 3 } <!--@if($var == $webhosting)--> <p>웹호스팅에 오신 것을 환영한다</p> <!--@elseif($var == $community)--> <p>커뮤니티에 오신 것을 환영한다</p> <!--@else--> <p>매니지드에 오신 것을 환영한다.</p> <!--@end--> 이렇게 한다면 결국은 if의 조건식도, elseif의 조건식도 만족하지 못하므로 else 가 실행이 되서 <p>매니지드에 오신 것을 환영한다</p> 라는 문장이 출력될 것 이다. ====foreach 반복문의 사용==== 템플릿 스크립트의 foreach도 PHP의 foreach와 동일한 동작을 한다. 기본 코드는 아래와 같다. <!--@foreach($배열변수 as $key => $value)--> 반복 실행될 문장 <!--@end--> 다음과 같은 배열이 있다고 가정해 보겠다. {@$a = array("one"=>1, "two"=>2, "three"=>3, "etc"=>365)} 그러면 다음과 같은 코드를 이용하여 키와 값을 출력할 수 있다. <!--@foreach($a as $key => $value)--> <p>$a[{$key}]의 값은 {$value} 이다</p> <!--@end--> 출력결과는 아래와 같다. $a[one]의 값은 1 이다. $a[two]의 값은 2 이다. $a[three]의 값은 3 이다. $a[etc]의 값은 365 이다. ====파일의 삽입==== 하나의 템플릿 파일을 여러 개로 나누어서 분리한 후 include 를 이용하여 하나로 합칠 수 있다. 기본 코드는 아래와 같다. <!--#include('파일경로')--> 주의할 것은 include 문을 이용하여 PHP 파일을 불러와도 PHP로 해석되지 않다. 템플릿 스크립트의 include 는 분할된 XE템플릿 파일을 include 할 뿐 이다. ====CSS/자바스크립트와의 연결==== CSS나 자바스크립트를 사용하기 위해서는 아래 코드를 사용한다. <!--%import(파일경로)--> 이렇게 import 된 파일은 **선언된 위치에 상관없이** HTML의 <head> 안에 자동으로 삽입된다. XML JS Filter의 적용 방법도 CSS/자바스크립트와의 연결 방법과 같다. ====모바일 모드 구분==== <span cond="Mobile::isMobileCheckByAgent()">모바일모드이다.</span> <span cond="!Mobile::isMobileCheckByAgent()">모바일모드가 아니다.</span> ===== 변수===== ====접속자 정보==== http://www.xeschool.com/xe/xenote_useful_variable_logged_info ^ 접속자 정보 ^ 설명 ^ |$logged_info->member_srl|회원의 고유 번호. 중복 X| |$logged_info->user_id| 아이디| |$logged_info->email_address|메일 주소| |$logged_info->passwrod|비밀번호. MD5 형식으로 암호화 되어 있음.| |$logged_info->email_id|메일 주소에서 아이디 부분만 뽑아낸 것.| |$logged_info->email_host|메일 주소에서 호스타 부분만 뽑아낸 것.| |$logged_info->user_name|이름| |$logged_info->nick_name|닉네임| |$logged_info->homepage|홈페이지 주소| |$logged_info->blog|블로그 주소| |$logged_info->birthday|생일| |$logged_info->allow_mailing|메일링 수신| |$logged_info->allow_message|쪽지 수신 여부 (Y: 전체 수신, N :거부, F: 친구만 허용)| |$logged_info->denied|사용 중지 (Y: 사용 중지)| |$logged_info->limit_date|제한일| |$logged_info->regdate|가입일| |$logged_info->last_login|최근 로그인 시간| |$logged_info->is_admin|최고 관리자 여부 (Y: 최고 관리자, N: 최고 관리자 아님)| |$logged_info->description|설명| |$logged_info->profile_image|프로필 이미지 정보가 담긴 배열| |$logged_info->profile_image->width|프로필 이미지 가로 폭| |$logged_info->profile_image->height|프로필 이미지 세로 폭| |$logged_info->profile_image->src|프로필 이미지 전체 주소| |$logged_info->profile_image->file|프로필 이미지 경로| |$logged_info->image_name|이미지 이름 정보가 담긴 배열| |$logged_info->image_name->width|이미지 이름 가로 폭| |$logged_info->image_name->height|이미지 이름 세로 폭| |$logged_info->image_name->src|이미지 이름 전체 주소| |$logged_info->image_name->file|이미지 이름 경로| |$logged_info->image_mark|이미지 마크 정보가 담긴 배열| |$logged_info->image_mark->width|이미지 마크 가로 폭| |$logged_info->image_mark->height|이미지 마크 세로 폭| |$logged_info->image_mark->src|이미지 마크 전체 주소| |$logged_info->image_mark->file|이미지 마크 경로| |$logged_info->signature|서명| |$logged_info->group_list|소속된 그룹 정보가 담긴 배열| * [[https://www.dokuwiki.org/devel:environment|도쿠위키 변수는 여기 참조]] * userinfo — only set for a logged user, an associative array… * pass — password, encrypted * name — full name * mail — email address * grps — groups the user belongs to (Array ) * buid — a special id constructed from details of the user's browser and IP address xe의 그룹 구조 key : 1 ~~~ val : admin key : 3 ~~~ val : mania ===== 도쿠 위키와 세션만 연동===== http://50ndd1n6.tistory.com/59 [[xe dokuwiki]] ===== 훌륭한 로긴 방식===== http://www.xpressengine.com/tip/16724404 ====socialxe==== XE 기본으로 표시되는 로그인 폼에서도 수정을 하시려면 회원 관리 모듈의 스킨 ''/modules/member/skins/default/login_form.html'' 파일을 수정하면된다. 참고로 SocialXE 공식 사이트에서는 login_form.html 파일의 내용을 아래와 같이 수정하여 사용하고 있다. {@header("Location: " . getNotEncodedUrl('act', 'dispSocialxeLoginForm'))} =====외부페이지에서 로그인 정보를 출력===== http://zbxe.bluegate.kr/19 <code php> <?PHP $logged_info = Context::get("logged_info"); if($logged_info){ echo $logged_info->nick_name."님 로그인 되었다"; } else { echo "로그인을 먼저 하십시요"; } ?> </code> http://www.xpressengine.com/tip/16309252 ====함수 호출..==== <a href="{getUrl('act','dispMemberLoginForm')}">{$lang->cmd_login}</a> <a href="{getUrl('act','모듈아이디')}">출력하고픈말</a> 이렇게 바꾸시면 돼요^^ 그러니까 * dispMemberLoginForm 로그인 [[http://vaslor.net/bb/?act=dispMemberLoginForm]] * dispMemberInfo 마이페이지 * dispMemberOwnDocument 내글 * dispMemberScrappedDocument 내스크랩 * dispMemberSavedDocument 내 문서 * dispCommunicationMessages 쪽지함 등등 실제 주소에서 http://www.abc.com/?mid=index&act=dispCommunicationMessages ====모듈정보==== |목록 및 선택된 글 출력| dispBoardContent| list.html| |태그 목록 모두 보기| dispBoardTagList| tag_list.html| |글 작성 화면 출력|| write_form.html| |문서 삭제 화면 출력| dispBoardDelete| delete_form.html| |댓글의 답글 화면 출력| dispBoardReplyComment (문서에 댓글) \\ dispBoardWriteComment (댓글에 댓글)| comment_form.html| |댓글 수정 폼 출력| dispBoardModifyComment| comment_form.html| |댓글 삭제 화면 출력| dispBoardDeleteComment| delete_comment_form.html| |엮인글 삭제 화면 출력| dispBoardDeleteTrackback| delete_trackback_form.html| |메세지 출력| dispBoardMessage| message.html| |비밀번호 입력| input_password_form.html| |회원 정보 보기| member_info| dispMemberInfo | |스크랩 목록| dispMemberScrappedDocument| scrapped_list | |저장함 보기| dispMemberSavedDocument| saved_list | |작성 글 보기| dispMemberOwnDocument| document_list | |회원 정보 수정| dispMemberModifyInfo| modify_info | |비밀번호 변경| dispMemberModifyPassword| modify_password | |회원 탈퇴| dispMemberLeave| leave_form | |오픈 아이디 탈퇴| dispMemberOpenIDLeave| openid_leave_form | |로그아웃| dispMemberLogout| logout | |저장된 글 목록 (pop)| dispSavedDocumentList| saved_list_popup | |로그인| dispMemberLoginForm| login_form | |회원가입| dispMemberSignUpForm| signup_form | |아이디 / 비밀번호 찾기| dispMemberFindAccount| find_member_account | |인증메일 재발송| dispMemberResendAuthMail| resend_auth_mail | |임시 비밀번호| dispMemberGetTempPassword| find_temp_password | confirm_member_account_mail.html 메일 인증 같음 find_member_account_mail.html 회원 정보를 메일로 찾을 때 communication 모듈 |친구 보기| dispCommunicationFriend| friends | |쪽지함 보기| dispCommunicationMessages| messages | |새 쪽지 보여줌 (pop)| dispCommunicationNewMessage| new_message | |쪽지 발송 출력 (pop)| dispCommunicationSendMessage| send_message | |친구 추가 (pop)| dispCommunicationAddFriend| add_friend | |친구 그룹 추가 (pop)| dispCommunicationAddFriendGroup| add_friend_group | 글쓰기 ?mid=game&act=dispBoardWrite&page=1 글쓰기 미리 내용 넣기 http://www.xpressengine.com/tip/18022769 =====팁===== ====속도==== 글 등록시에만 등록속도가 현저히 떨어진다면 캐쉬 문제일 가능성이 있다. files 폴더에 cache_123456789 라는 폴더가 쌓여있는지 먼저 확인해보고 cache_123456786 cache_123456787 cache_123456788 cache_123456789 이처럼 cache_ 숫자 가 있는 폴더를 정리 해야된다. 그렇다고 무작정 다 지우게 되면 사이트에 문내가 발생하니 cache_123456789 폴더를 백업하고 cache_123456789를 하나씩지우면서 테스트 를 해보기를 권장한다. ====xe.min.css 삭제...==== unload 태그가 안먹히면 이런 임시방편을 사용해보라.. <code><script type="text/javascript"> jQuery("link[rel=stylesheet][href*='common/css/xe.min.css']").remove(); </script></code> 혹시 먹히지 않는다면 아래 방법으로.. <code><script type="text/javascript"> jQuery(function(){ jQuery("link[rel=stylesheet][href*='common/css/xe.min.css']").remove(); }); </script></code> 첫째는 xe.min.css 파일을 아예 로드하지 않는 방법이다. 둘째는 파일이 로드된 뒤에 지우는 방식이다. ====기본 URL 설정이 안 되어 있습니다.==== 아마 각종 해킹에 대한 보안대책의 하나로 현재의 서버 정보와 지정된 주소가 다르면 에러를 뿜는 것으로 보인다. 일반-설정-고급-기본 URL을 지정해서 해결 되는 경우도 있으나, 기본url은 ''xe - files - config - db.config.php'' 열고 ''$db_info->default_url'' 여기에 값을 넣으면 된다. 예: ''$db_info->default_url = 'http://openwiki.kr/';'' 그래도 안된다면 ''classes/module/ModuleHandler.class.php'' 파일의 130번째 줄 부근의 에러 발생 루틴을 주석처리하면 된다. <file php>if($host && ($host != $defaultHost && $host != $site_module_info->domain)) { // throw new Exception('msg_default_url_is_null'); // 이걸 주석처리.. }</file> {{tag>tech xe 네이버 xpressionengine}}
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
Authxe: XE & Dokuwiki 동시 로그인
MariaDB
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
기술
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye