차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:xe [2014/03/09 00:53] – V_L | tech:xe [2016/07/12 09:26] (현재) – 바깥 편집 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:// | ||
+ | |||