차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| tech:xe [2014/03/18 17:37] – 바깥 편집 127.0.0.1 | tech:xe [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | {{tag> | ||
| + | ======Xpressengine (XE)====== | ||
| + | |||
| + | 오픈소스 CMS. 현재는 네이버 산하 오픈소스 프로젝트로 개발이 진행되고 있다. | ||
| + | |||
| + | http:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | 세션 정보를 파일이 아닌 DB를 이용하는 것에 대한 논의 | ||
| + | http:// | ||
| + | |||
| + | 세션 테이블 때문에 문제라는 많은 글들 | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | 접속자도 별로 없는데 | ||
| + | |||
| + | 세션 테이블의 레코드 수가 백만개!!. | ||
| + | |||
| + | 자동으로 정리 하도록 할 수 없나. | ||
| + | |||
| + | |||
| + | |||
| + | =====XE 템플릿 스크립트===== | ||
| + | XE에서만 사용되는 **XE 전용**의 웹 프로그래밍 언어라고 생각하면 된다. | ||
| + | 이 스크립트는 layout.html(이하 ' | ||
| + | |||
| + | 모든 언어에는 그 들만의 규칙이 있으므로, | ||
| + | 그 규칙에 맞게 작성해야만 정상적인 작동을 한다. | ||
| + | |||
| + | ====XE 템플릿 스크립트에서 PHP문의 사용==== | ||
| + | |||
| + | XE 템플릿 스크립트는 PHP와 유사하지만, | ||
| + | 그렇기때문에 템플릿 스크립트에서는 PHP를 //대충// 사용할 수 있는 방법을 제공하고 있다. | ||
| + | 템플릿 파일내에서 {@ 와 } 사이에 나오는 문장은 PHP문으로 해석한다. | ||
| + | |||
| + | {@$test = 365} | ||
| + | |||
| + | 이 문장은 ' | ||
| + | |||
| + | {@ | ||
| + | $test = 200; | ||
| + | $managed = $test + 165 | ||
| + | } | ||
| + | |||
| + | 이 문장은 ' | ||
| + | 라는 의미이다. | ||
| + | |||
| + | 첫번째 예제와 두번 째 예제의 사이에는 커다란 차이점이 있다. | ||
| + | 첫번째 예제는 PHP에서 단 한문장으로 끝날 수 있는 부사람이지만 | ||
| + | 두번째 예제는 PHP에서 세미콜론(; | ||
| + | |||
| + | 이렇게 2 문장 이상일 경우에는 PHP와 달리 두번째 예제와 같이 **여러 줄에 걸쳐서 입력**해야 한다. | ||
| + | 아래와 같은 코드는 템플릿 스크립트에서 정상적으로 작동되지 않다. | ||
| + | |||
| + | {@$test = 200; $managed = $test + 165} (X) | ||
| + | |||
| + | ====XE 템플릿 스크립트에서 변수의 사용==== | ||
| + | |||
| + | 템플릿 스크립트에서는 별도의 변수 선언문이 없다. | ||
| + | 그렇기때문에 변수를 사용하기 위해서는 위에서 본 PHP문 사용 방법을 통해 변수를 선언해야 한다. | ||
| + | |||
| + | | ||
| + | |||
| + | ' | ||
| + | |||
| + | 다음과 같이 사용할 수도 있다. | ||
| + | {@ | ||
| + | $var1 = 10; | ||
| + | $var2 = 20; | ||
| + | $var3 = 30; | ||
| + | $var4 = $var1 + $var2 + $var3 | ||
| + | } | ||
| + | |||
| + | 변수값을 출력을 하기 위해서는 { 와 } 사이에 변수를 입력해주면 된다. | ||
| + | |||
| + | {$var4} | ||
| + | |||
| + | 이렇게하면 ' | ||
| + | 여기서는 60 이라는 값이 출력된다. | ||
| + | |||
| + | ====IF 조건문의 사용==== | ||
| + | |||
| + | if문 또한 C 언어나 PHP 등과 유사한 모습으로 사용된다. 아래는 기본 코드이다. | ||
| + | < | ||
| + | |||
| + | 조건이 만족되면 이 부분을 실행한다. | ||
| + | |||
| + | < | ||
| + | |||
| + | 첫번 째 조건이 만족되지 않고 | ||
| + | elseif 의 조건식을 검토하여 만족될 경우 이 곳이 실행된다. | ||
| + | |||
| + | < | ||
| + | |||
| + | 모든 조건이 만족되지 않을 경우에는 이 곳이 실행된다. | ||
| + | |||
| + | < | ||
| + | |||
| + | end 는 if문의 끝을 의미한다. | ||
| + | 그러면 if문의 예제를 하나 들어보겠다. | ||
| + | {@ | ||
| + | $var = 1; | ||
| + | $webhosting = 2; | ||
| + | $community = 3 | ||
| + | } | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | |||
| + | 이렇게 한다면 결국은 if의 조건식도, | ||
| + | |||
| + | < | ||
| + | |||
| + | 라는 문장이 출력될 것 이다. | ||
| + | |||
| + | ====foreach 반복문의 사용==== | ||
| + | |||
| + | 템플릿 스크립트의 foreach도 PHP의 foreach와 동일한 동작을 한다. | ||
| + | 기본 코드는 아래와 같다. | ||
| + | |||
| + | < | ||
| + | |||
| + | 반복 실행될 문장 | ||
| + | |||
| + | < | ||
| + | |||
| + | 다음과 같은 배열이 있다고 가정해 보겠다. | ||
| + | {@$a = array(" | ||
| + | 그러면 다음과 같은 코드를 이용하여 키와 값을 출력할 수 있다. | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | 출력결과는 아래와 같다. | ||
| + | $a[one]의 값은 1 이다. | ||
| + | $a[two]의 값은 2 이다. | ||
| + | $a[three]의 값은 3 이다. | ||
| + | $a[etc]의 값은 365 이다. | ||
| + | |||
| + | ====파일의 삽입==== | ||
| + | |||
| + | 하나의 템플릿 파일을 여러 개로 나누어서 분리한 후 | ||
| + | include 를 이용하여 하나로 합칠 수 있다. | ||
| + | 기본 코드는 아래와 같다. | ||
| + | |||
| + | < | ||
| + | |||
| + | 주의할 것은 include 문을 이용하여 PHP 파일을 불러와도 PHP로 해석되지 않다. | ||
| + | 템플릿 스크립트의 include 는 분할된 XE템플릿 파일을 include 할 뿐 이다. | ||
| + | |||
| + | ====CSS/ | ||
| + | |||
| + | CSS나 자바스크립트를 사용하기 위해서는 아래 코드를 사용한다. | ||
| + | < | ||
| + | 이렇게 import 된 파일은 **선언된 위치에 상관없이** HTML의 < | ||
| + | |||
| + | XML JS Filter의 적용 방법도 CSS/ | ||
| + | |||
| + | |||
| + | ====모바일 모드 구분==== | ||
| + | |||
| + | <span cond=" | ||
| + | <span cond=" | ||
| + | ===== 변수===== | ||
| + | |||
| + | |||
| + | ====접속자 정보==== | ||
| + | http:// | ||
| + | |||
| + | ^ 접속자 정보 | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |$logged_info-> | ||
| + | |||
| + | * [[https:// | ||
| + | * 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:// | ||
| + | |||
| + | [[xe dokuwiki]] | ||
| + | ===== 훌륭한 로긴 방식===== | ||
| + | http:// | ||
| + | |||
| + | http:// | ||
| + | |||
| + | 템플릿에 | ||
| + | |||
| + | < | ||
| + | |||
| + | 추가. | ||
| + | |||
| + | ====socialxe==== | ||
| + | |||
| + | XE 기본으로 표시되는 로그인 폼에서도 수정을 하시려면 회원 관리 모듈의 스킨 ''/ | ||
| + | |||
| + | {@header(" | ||
| + | |||
| + | =====외부페이지에서 로그인 정보를 출력===== | ||
| + | |||
| + | http:// | ||
| + | <code php> | ||
| + | <?PHP | ||
| + | $logged_info = Context:: | ||
| + | if($logged_info){ | ||
| + | echo $logged_info-> | ||
| + | } else { | ||
| + | echo " | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | http:// | ||
| + | ====함수 호출..==== | ||
| + | |||
| + | <a href=" | ||
| + | <a href=" | ||
| + | |||
| + | 이렇게 바꾸시면 돼요^^ | ||
| + | 그러니까 | ||
| + | |||
| + | * dispMemberLoginForm 로그인 | ||
| + | * dispMemberInfo 마이페이지 | ||
| + | * dispMemberOwnDocument 내글 | ||
| + | * dispMemberScrappedDocument 내스크랩 | ||
| + | * dispMemberSavedDocument 내 문서 | ||
| + | * dispCommunicationMessages 쪽지함 | ||
| + | |||
| + | 등등 실제 주소에서 http:// | ||
| + | |||
| + | ====모듈정보==== | ||
| + | |||
| + | |목록 및 선택된 글 출력| 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 | ||
| + | |||
| + | 글쓰기 ? | ||
| + | |||
| + | 글쓰기 미리 내용 넣기 http:// | ||
| + | |||
| + | =====팁===== | ||
| + | |||
| + | ====속도==== | ||
| + | |||
| + | 글 등록시에만 등록속도가 현저히 떨어진다면 | ||
| + | 캐쉬 문제일 가능성이 있다. | ||
| + | |||
| + | files 폴더에 cache_123456789 라는 폴더가 쌓여있는지 먼저 확인해보고 | ||
| + | cache_123456786 | ||
| + | cache_123456787 | ||
| + | cache_123456788 | ||
| + | cache_123456789 | ||
| + | 이처럼 cache_ 숫자 가 있는 폴더를 정리 해야된다. | ||
| + | |||
| + | 그렇다고 무작정 다 지우게 되면 사이트에 문제가 발생하니 | ||
| + | cache_123456789 폴더를 백업하고 cache_123456789를 하나씩지우면서 | ||
| + | 테스트 를 해보기를 권장한다. | ||
| + | |||
| + | ====xe.min.css 삭제...==== | ||
| + | |||
| + | unload 태그가 안먹히면 이런 임시방편을 사용해보라.. | ||
| + | < | ||
| + | jQuery(" | ||
| + | </ | ||
| + | |||
| + | 혹시 먹히지 않는다면 아래 방법으로.. | ||
| + | < | ||
| + | jQuery(function(){ | ||
| + | jQuery(" | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | 첫째는 xe.min.css 파일을 아예 로드하지 않는 방법이다. | ||
| + | 둘째는 파일이 로드된 뒤에 지우는 방식이다. | ||
| + | ====기본 URL 설정이 안 되어 있다.==== | ||
| + | |||
| + | 아마 각종 해킹에 대한 보안대책의 하나로 현재의 서버 정보와 지정된 주소가 다르면 에러를 뿜는 것으로 보인다. | ||
| + | |||
| + | 일반-설정-고급-기본 URL을 지정해서 해결 되는 경우도 있으나, | ||
| + | |||
| + | 기본url은 | ||
| + | '' | ||
| + | '' | ||
| + | 여기에 값을 넣으면 된다. | ||
| + | |||
| + | 예: '' | ||
| + | |||
| + | 그래도 안된다면 '' | ||
| + | |||
| + | <file php> | ||
| + | { | ||
| + | // throw new Exception(' | ||
| + | }</ | ||
| + | |||
| + | ====인쇄==== | ||
| + | |||
| + | http:// | ||
| + | http:// | ||
| + | =====사용자 관리===== | ||
| + | |||
| + | 권한관리 설정하기 | ||
| + | 게시판에 대한 권한 관리에는 다음과 같이 여러개로 나뉩니다. | ||
| + | |||
| + | * 접근 권한 : 게시판에 접근할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다. | ||
| + | * 목록 : 게시판 목록을 볼수 있는 권한을 각 회원 그룹별로 지정할 수 있다. | ||
| + | * 열람 : 게시판 상세내용을 볼수 있는 권한을 각 회원 그룹별로 지정할 수 있다. | ||
| + | * 글 작성 : 게시판에 글을 등록할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다. | ||
| + | * 댓글 작성 : 게시판에 댓글을 등록할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다. | ||
| + | * 관리 권한 : 게시판을 관리 할 수 있는 권한을 각 회원 그룹별로 지정할 수 있다. | ||
| + | |||
| + | 관리 권한으로 설정된 그룹에 속한 회원들은 해당 게시판의 글을 마음대로 삭제하고, | ||
| + | 신중하게 설정해야 한다. | ||
| + | |||
| + | =====참고자료===== | ||
| + | |||
| + | - SOL님의 SMS로 XE 게시판에 글쓰기 http:// | ||
| + | - 뎅ㅇㅣ님의 XE - JSON 모듈 만들기 http:// | ||
| + | - Hide_D님 board.api.php 사용법 http:// | ||
| + | |||